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:

LinuxmacOSWindowsFreeBSD
amd64zip, tgzzip, tgzzip, tgzzip, tgz
arm64zip, tgzzip, tgzzip, tgz-
arm6zip, tgz-zip, tgz-
arm7zip, tgz-zip, tgz-
386zip, tgz-zip, tgz-

Packages

Official builds are packaged for Debian and Red Hat-based distributions.

DebianRedHat
amd64debrpm
arm64debrpm
arm6debrpm
arm7debrpm
386debrpm
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

Previous
Server