# Install nng with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

Nanomsg-next-generation -- light-weight brokerless messaging. Version 1.12.0 via Homebrew; verified 2026-06-28.

## Install

```sh
sudo av install brew:nng
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install nng
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install nng
```

  Evidence: MacPorts ports tree: devel/nng/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add nng
```

  Evidence: Alpine Linux edge package indexes: nng from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install libnng-dev
```

  Evidence: Debian stable package indexes: libnng-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install nng
```

  Evidence: Fedora Rawhide package metadata: nng from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#nng
```

  Evidence: nixpkgs package indexes: pkgs/by-name/nn/nng/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S nng
```

  Evidence: Arch Linux sync databases: nng from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libnng1
```

  Evidence: openSUSE Tumbleweed package metadata: libnng1 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:nng
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/nng>
- **Version:** 1.12.0
- **Source summary:** Nanomsg-next-generation -- light-weight brokerless messaging
- **Homepage:** <https://nng.nanomsg.org/>
- **Repository:** <https://github.com/nanomsg/nng>
- **Upstream docs:** <https://github.com/nanomsg/nng#readme>
- **License:** MIT
- **Source archive:** <https://github.com/nanomsg/nng/archive/refs/tags/v1.12.0.tar.gz>
- **Last updated:** 2026-06-28T03:47:06Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- nngcat (cli)
- nngcat (alias)

## Build dependencies

- asciidoctor
- cmake
- ninja

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.12.0
- Package-manager updated: 2026-06-28
- Local data: ok
- Upstream repository: https://github.com/nanomsg/nng
- Upstream latest detected: v1.12.0 (current)
## Project history and usage

NNG, short for nanomsg-next-generation, is a C messaging library that reworks nanomsg's brokerless Scalability Protocols model with stronger production, async, transport, and security foundations.

### Project history

The upstream README explicitly describes NNG as a rewrite of the Scalability Protocols library known as nanomsg, keeping compatibility with the original while adding significant capabilities. Its self-description places it in the same family as nanomsg and, to a lesser extent, ZeroMQ: lightweight brokerless messaging for recurring patterns such as publish/subscribe, request/reply, and service discovery.

The rewrite emphasized reliability, scalability, maintainability, extensibility, security, and usability. Notable package-level changes include a C11/CMake build, a custom asynchronous I/O framework, TLS-capable transports, and APIs intended to be more intuitive for concurrent programs.

### Adoption history

NNG's adoption is developer-library adoption: it is packaged as libnng-dev or nng across Homebrew, Debian/Ubuntu, Fedora, Alpine, Arch, Nix, MacPorts, and openSUSE, and it exposes nngcat as a CLI utility. The repository also documents commercial support and sponsorship, which is meaningful for a low-level C messaging library used in production systems.

Compatibility was a core adoption strategy. The project documented migration from legacy libnanomsg and offered wire/API compatibility for many nanomsg and mangos applications, letting existing Scalability Protocols users move incrementally instead of rewriting their messaging layer at once.

### How it is used

Developers use NNG when they want simple message-pattern APIs without standing up a broker. Common package-nerd experiments use nngcat to test pub/sub or req/rep endpoints, then embed libnng in C or bind through another language for IPC, TCP, WebSocket, TLS, or in-process transport.

The practical distinction from heavier messaging stacks is that NNG tries to own the boring plumbing: reconnects, connection management, async dispatch, and protocol state. That makes it attractive for embedded systems, appliances, developer tools, and service components where a full broker is excessive.

### Why package nerds care

NNG matters because it is the active successor path for nanomsg-style messaging. It preserves the idea that common distributed communication patterns can be expressed as small socket-like protocols while modernizing the implementation enough for safer concurrent production use.

### Timeline

- {'event': "NNG emerged as a next-generation rewrite of nanomsg's Scalability Protocols library.", 'year': '2010s'}
- {'date': '2026-06-28', 'event': 'The GitHub repository page listed Version 1.12 Bug Fix Release as the latest release.'}

### Related projects

- nanomsg
- ZeroMQ
- mangos
- nngcat

### Sources

- <https://github.com/nanomsg/nng>
- <https://github.com/nanomsg/nng/blob/main/docs/ref/migrate/nanomsg.md>
- <https://nng.nanomsg.org/>
- <https://nng.nanomsg.org/man/tip/nng.7.html>
- <https://raw.githubusercontent.com/nanomsg/nng/main/README.md>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** nng
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - libnng-dev - 1.10.1-2: normalized package name match | Debian stable package indexes: libnng-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Messaging Library - development | https://nng.nanomsg.org/
- Debian apt - libnng-doc - 1.10.1-2: normalized package name match | Debian stable package indexes: libnng-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Messaging Library - HTML documentation | https://nng.nanomsg.org/
- Debian apt - libnng1 - 1.10.1-2: normalized package name match | Debian stable package indexes: libnng1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Messaging Library - shared library | https://nng.nanomsg.org/
- Debian apt - nng-utils - 1.10.1-2: normalized package name match | Debian stable package indexes: nng-utils from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Lightweight Messaging Library - utility | https://nng.nanomsg.org/
- Nix - nng: normalized package name match | nixpkgs package indexes: pkgs/by-name/nn/nng/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libnng-dev - 1.7.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libnng-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Messaging Library - development | https://nng.nanomsg.org/
- Ubuntu apt - libnng1 - 1.7.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libnng1 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Messaging Library - shared library | https://nng.nanomsg.org/
- Ubuntu apt - nng-utils - 1.7.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: nng-utils from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Lightweight Messaging Library - utility | https://nng.nanomsg.org/
- apk - nng - 1.11-r0: normalized package name match | Alpine Linux edge package indexes: nng from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Lightweight Broker-Less Messaging Library | https://nng.nanomsg.org/
- apk - nng-dev - 1.11-r0: normalized package name match | Alpine Linux edge package indexes: nng-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Lightweight Broker-Less Messaging Library (development files) | https://nng.nanomsg.org/
- apk - nng-doc - 1.11-r0: normalized package name match | Alpine Linux edge package indexes: nng-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Lightweight Broker-Less Messaging Library (documentation) | https://nng.nanomsg.org/
- dnf - nng - 1.9.0-5.fc44: normalized package name match | Fedora Rawhide package metadata: nng from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Light-weight brokerless messaging | https://nanomsg.github.io/nng/
- dnf - nng-devel - 1.9.0-5.fc44: normalized package name match | Fedora Rawhide package metadata: nng-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for the nng socket library | https://nanomsg.github.io/nng/
- dnf - nng-utils - 1.9.0-5.fc44: normalized package name match | Fedora Rawhide package metadata: nng-utils from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Command line interface for communicating with nng | https://nanomsg.github.io/nng/
- pacman - nng - 1.11-2: normalized package name match | Arch Linux sync databases: nng from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A lightweight, broker-less messaging library | https://nng.nanomsg.org/
- zypper - libnng1 - 1.11-1.2: normalized package name match | openSUSE Tumbleweed package metadata: libnng1 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Shared library for nng | https://nanomsg.github.io/nng/


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [asciidoctor](https://www.automicvault.com/pkg/brew/asciidoctor/) - Build dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [activemq-cpp](https://www.automicvault.com/pkg/brew/activemq-cpp/) - Shares av.db curated category or tags: cli, developer-tools, messaging.
- [imessage-ruby](https://www.automicvault.com/pkg/brew/imessage-ruby/) - Shares av.db curated category or tags: cli, developer-tools, messaging.
- [zeromq](https://www.automicvault.com/pkg/brew/zeromq/) - Shares av.db curated category or tags: cli, developer-tools, messaging.
- [check](https://www.automicvault.com/pkg/brew/check/) - Shares av.db curated category or tags: c, cli, developer-tools, library.
- [cppunit](https://www.automicvault.com/pkg/brew/cppunit/) - Shares av.db curated category or tags: c, cli, developer-tools, library.
- [dmalloc](https://www.automicvault.com/pkg/brew/dmalloc/) - Shares av.db curated category or tags: c, cli, developer-tools, library.
- [enchant](https://www.automicvault.com/pkg/brew/enchant/) - Shares av.db curated category or tags: c, cli, developer-tools, library.
- [flatcc](https://www.automicvault.com/pkg/brew/flatcc/) - Shares av.db curated category or tags: c, cli, developer-tools, library.

## Combined YAML source

View the package source record on GitHub. [combined/nng.yml](https://github.com/automic-vault/db/blob/main/combined/nng.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
