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
Client | Version | Released |
---|---|---|
CLI | v0.0.35 | November 4, 2022 |
Go | v1.28.0 | July 20, 2023 |
Rust | v0.28.0 | March 2, 2023 |
Java | v2.16.13 | June 22, 2023 |
C# | v1.0.7 | July 12, 2023 |
Deno | v1.15.1 | June 22, 2023 |
Node | v2.15.1 | June 22, 2023 |
Web | v1.16.1 | June 22, 2023 |
Python | v2.3.0 | June 3, 2023 |
C | v3.6.1 | March 7, 2023 |
Ruby | v0.11.0 | June 11, 2019 |
Elixir | v1.5.1 | May 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:
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@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