Download
Clients
The official set of clients follows the NATS Governance model. These clients are managed under the nats-io organization and are expected to maintain compatibility with current versions of the NATS server.
There are also many community-developed clients with varying degrees of maturity and compatibility. In most cases, all community-developed clients support basic NATS messaging functionality, while there are a smaller number supporting streaming, key-value, object store, and service APIs.
Forwards and backwards compatibility of the client protocol is a top priority so even if a client has not been updated for a while, it is likely to still work with recent versions of the server.
Official Clients
CLI
The NATS CLI is an essential tool for trying out the core capabilities of NATS without writing any code, but also provides a slew of introspection, management, and benchmarking tools.
Builds
Standalone builds for all supported operating systems and CPU architectures are available as downloadable assets on the GitHub releases page. For convenience, here is a matrix of with direct links:
Linux | macOS | Windows | FreeBSD | |
---|---|---|---|---|
amd64 | zip, tgz | zip, tgz | zip, tgz | zip, tgz |
arm64 | zip, tgz | zip, tgz | zip, tgz | - |
arm6 | zip, tgz | - | zip, tgz | - |
arm7 | zip, tgz | - | zip, tgz | - |
386 | zip, tgz | - | zip, tgz | - |
Packages
Official builds are packaged for Debian and Red Hat-based distributions.
Debian | RedHat | |
---|---|---|
amd64 | deb | rpm |
arm64 | deb | rpm |
arm6 | deb | rpm |
arm7 | deb | rpm |
386 | deb | rpm |
Debian/Ubuntu
Install it using apt install
with the appropriate permissions (i.e. sudo
).
apt install ./nats-<version>-<arch>.deb
CentOS/RedHat
Install it using rpm
with the appropriate permissions (i.e. sudo
).
rpm -i ./nats-<version>-<arch>.rpm
macOS
Homebrew
Homebrew is updated via community contribution, but the Formulae is often updated the same day that a new release is made.
brew tap nats-io/nats-tools
brew install nats-io/nats-tools/nats
Go
go get github.com/nats-io/nats.go@v1.27.1
Links
Rust
The Rust client has implementations, one that is synchonrous and one that is asynchronous using Tokio.
nats
cargo add nats@0.24.0
async-nats
cargo add async-nats@0.28.0
Links
Java
Maven
<dependency>
<groupId>io.nats</groupId>
<artifactId>jnats</artifactId>
<version>2.16.12</version>
</dependency>
Gradle
implementation group: 'io.nats', name: 'jnats', version: '2.16.12'
Links
C#
dotnet add package NATS.Client --version 1.0.6
Links
Deno
import * as nats from "https://deno.land/x/nats@v1.15.1/src/mod.ts";
Links
Node
npm install nats@2.15.1
Links
Web
npm install nats.ws@[object Object]
Links
Python
pip install nats-py==2.3.0
Links
Ruby
gem install nats-pure -v [object Object]
Links
C
Homebrew
brew install cnats@3.6.1
vcpkg
To specify a version, manifest mode is required within a vcpkg.json
file.
{
"dependencies": [ "cnats" ],
"overrides": [
{ "name": "cnats", "version": "3.6.1" }
]
}
Now run the command to install what is declared in the manifest.
vcpkg install
Links
Elixir
Currently, this client only supports NATS messaging capabilities.
mix.exs
{:gnat, "~> [object Object]"}
rebar.config
{gnat, "[object Object]"}
Links
Community Clients
TODO