Download

Clients

The official set of clients follows the NATS Governance model and are managed under the nats-io GitHub organization.

There are also many community-developed clients with varying degrees of maturity and compatibility.

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.

However to leverage all the latest server capabilities, it is recommended to always use the latest version of the client.

Official Clients

ClientVersionReleased
CLIv0.0.35November 4, 2022
Gov1.28.0July 20, 2023
Rustv0.28.0March 2, 2023
Javav2.16.13June 22, 2023
C#v1.0.7July 12, 2023
Denov1.15.1June 22, 2023
Nodev2.15.1June 22, 2023
Webv1.16.1June 22, 2023
Pythonv2.3.0June 3, 2023
Cv3.6.1March 7, 2023
Rubyv0.11.0June 11, 2019
Elixirv1.5.1May 14, 2022

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@v[object Object]

Links

Rust

cargo add async-nats@[object Object]

Links

Java

Maven
<dependency>
    <groupId>io.nats</groupId>
    <artifactId>jnats</artifactId>
    <version>[object Object]</version>
</dependency>
Gradle
implementation group: 'io.nats', name: 'jnats', version: '[object Object]'

Links

C#

dotnet add package NATS.Client --version [object Object]

Links

Deno

import * as nats from "https://deno.land/x/nats@v[object Object]/src/mod.ts";

Links

Node

npm install nats@[object Object]

Links

Web

npm install nats.ws@[object Object]

Links

Python

pip install nats-py==[object Object]

Links

C

Homebrew
brew install cnats@[object Object]
vcpkg

To specify a version, manifest mode is required within a vcpkg.json file.

{
  "dependencies": [ "cnats" ],
  "overrides": [
    { "name": "cnats", "version": "[object Object]" }
  ]
}

Now run the command to install what is declared in the manifest.

vcpkg install

Links

Ruby

The Ruby client needs help with catching up in feature parity with the server! If you are interested in contributing, join the #ruby Slack channel and let us know!.

gem install nats-pure -v [object Object]

Links

Elixir

The Elixir client needs help with catching up in feature parity with the server! If you are interested in contributing, join the #elixir Slack channel and let us know!.

Currently, this client only supports NATS messaging capabilities.

mix.exs
{:gnat, "~> [object Object]"}
rebar.config
{gnat, "[object Object]"}

Links

Community Clients

TODO

Previous
Server