The NATS Server, its clients, and community connectors and utilities. The documentation covers getting started.
NATS Server official
synadia/nats-server:nightly and built from upstream NATS code with nothing added (all tags).
Clients
Starred clients are maintained by the NATS authors in the nats-io GitHub organization. To add a client, send a pull request updating language.toml.
| Language | Repository | Maintainer | JetStream |
|---|---|---|---|
| Arduino | isobit/arduino-nats | Josh Glendenning | |
| Asio C++ | antlad/nats-asio | Vlad Troinich | |
| Ballerina | ballerina-platform/module-ballerinax-nats | Ballerina | Yes |
| C | nats-io/nats.c | NATS Authors | Yes |
| Clojure | employeerepublic/clj-nats-async | Employee Republic | |
| Crystal | nats-io/nats.cr | NATS Authors | |
| repomaa/nats.cr | Joakim Repomaa | ||
| Dart | dgofman/nats_client | David Gofman | |
| dart-nats/dart-nats | Chart Chongcharoen | Yes | |
| Deno | nats-io/nats.deno | NATS Authors | Yes |
| Elixir | nats-io/nats.ex | NATS Authors | |
| iamd3vil/nats_ex | Sarat Chandra | ||
| Elm | orus-io/elm-nats | Christophe de Vienne | |
| Erlang | yuce/teacup_nats | Yuce Tekol | |
| Go | nats-io/nats.go | NATS Authors | Yes |
| Haskell | ondrap/nats-queue | Ondrej Palkovsky | |
| Java | nats-io/nats.java | NATS Authors | Yes |
| cloudfoundry-community/java-nats | Mike Heath | ||
| Java Android | spotoninc/nats-android | Marek Kedzierski | |
| LabVIEW | drew-herron/nats.lv | Drew Herron | |
| Laravel | zaeem2396/laravel-nats | Zaeem Ansari | Yes |
| Common Lisp | ccqpein/nats-cl | ccQ | |
| Lua | dawnangel/lua-nats | Eric Pinto | |
| MicroPython | mkharibalaji/mpynats | M K Hari Balaji | |
| .NET | nats-io/nats.net | NATS Authors | Yes |
| NGINX | nats-io/nginx-nats | NATS Authors | |
| Nim | deem0n/nim-nats | Dmitry Dorofeev | |
| Node.js | nats-io/nats.js | NATS Authors | Yes |
| OCaml | romanchechyotkin/nats.ocaml | Roman Chechyotkin | |
| vshender/nats.ml | Vadim Shender | ||
| Pascal | biot2/nats.pas | Vahid Nasehi Oskouei | |
| Perl | carwynmoore/perl-nats | Carwyn Moore | |
| PHP | basis-company/nats.php | Dmitry Krokhin | Yes |
| repejota/phpnats | Raül Pérez | ||
| ideaconnect/php-nats-jetstream-client | IDCT Bartosz Pachołek | Yes | |
| Pure Clojure | lispyclouds/claxon | Rahul De | Yes |
| Pure Ruby | nats-io/pure-ruby-nats | NATS Authors | Yes |
| Python | gr1n/nats-python | Nikita Grishko | |
| Python Asyncio | nats-io/nats.py | NATS Authors | Yes |
| Python Minimal | 3kwa/goingnats | Eugene Van Den Bulke | |
| Python Tornado | nats-io/python-nats | NATS Authors | |
| Python Twisted | johnwlockwood/txnats | John Lockwood | |
| C++/Qt/QML | kazmirchuk/qtnats | Petro Kazmirchuk | Yes |
| Qt5 C++ | pkoretic/qt-nats | Petar Koretić | |
| Ruby | nats-io/nats.rb | NATS Authors | |
| Rust | nats-io/nats.rs | NATS Authors | Yes |
| davidmcneil/rants | David McNeil | ||
| encabulators/natsclient | Kevin Hoffman | ||
| Scala | tyagihas/scala_nats | Teppei Yagihashi | |
| Swift | travelish/swiftnats | Firman Maulana | |
| aus-der-Technik/swifty-nats | aus der Technik | ||
| Tcl | kazmirchuk/nats-tcl | Petro Kazmirchuk | Yes |
| WebSocket | nats-io/nats.ws | NATS Authors | Yes |
| Zig | g41797/nats | g41797 | Yes |
Connectors and Utilities
To add a connector or utility, send a pull request updating addons.toml.
| Name | Description | Developer | Support |
|---|---|---|---|
| Ai2 Connect Stripe | Allows NATS message to be spent to Stripe APIs. | Scott Yacko | Ai2 Connect |
| Apache Flink | Allows Apache Flink to send/receive a stream of string based messages to/from NATS. | Matthew Ring | Community |
| Apache Spark NATS Connector | NATS JetStream Spark adapters - 2 adapters (balanced and partitioned) using different approaches to the integration. | NATS Team | Synadia |
| Apache Spark | Provides an Apache Spark (a fast and general engine for large-scale data processing) integration with NATS. | Laurent Magnin | Community |
| AWS NATS | This repository contains tools and templates to help using NATS in the Amazon Web Services platform. | Danko Miocevic | Community |
| Elastic Beats | Track NATS metrics and logs with dedicated modules of Metribeat and Filebeat agents. | Stamatis Katsaounis Michael Katsoulis Chris Markou | Community |
| Caddy NATS | A caddy module that allows the caddy server to interact with a NATS server. This extension supports: publish/subscribe, fan in/out, and request reply. | Jeremy Saenz | Community |
| CoreOS Clustering | NATS clustering made easy with CoreOS, etcd2 and Docker. | Paulo Pires | Community |
| Deepstream.io connector for NATS | Deepstream message connector for NATS | nxtedition | Community |
| Dokku-NATS | NATS plugin for Dokku, a PaaS Platform | Jose Diaz-Gonzalez | Community |
| Easy NATS | A fast Rust NATS GUI with powerful search and a dockable workspace. | Sworld | Community |
| Elasticsearch | Allows you to take data from nats subjects/groups and pump these into Elasticsearch. | Netlify | Community |
| flowgger | A fast data collector in rust, for syslog, JSON (GELF), LTSV, and Cap’n Proto | Michael Freeman | Community |
| Fluent Bit | The NATS output connector allows to flush your Fluent Bit records into a NATS Server endpoint | Fluent Bit | Community |
| Fluentd Event Collector | NATS plugin for fluentd Event Collector | Cloud Foundry Community | Community |
| A Gatling to NATS Connector | The NATS Gatling library provides a Gatling (an open-source load testing framework based on Scala, Akka and Netty) to NATS messaging system (a highly performant cloud native messaging system) Connector. | Laurent Magnin | Community |
| goflow2 | Collect sFlow/IPFIX/Netflow data and forward to NATS | Michael Freeman | Community |
| GoFr | An opinionated Go framework for accelerated microservice development | Michael Freeman | Community |
| Hemera | A Node.js microservices toolkit for NATS. | Dustin Deus | Community |
| Java NATS Server | Java NATS Server for unit testing. | Yuna Morgenstern | Community |
| Java NATS Streaming Server | Java NATS Streaming Server for unit testing. | Yuna Morgenstern | Community |
| Kubernetes | NATS cluster on top of Kubernetes made easy. | Paulo Pires | Community |
| Logrus | NATS hook for Logrus - helpers assume you are using a TLS connection. | Ryan Neal | Community |
| Logrus-NATS | A Logrus hook for sending data to NATS. | Erik Howard | Community |
| Mage.ai | Build, deploy and run data pipelines using Mage.ai and NATS | Michael Freeman | Community |
| MongoDB NATS Connector | A connector that uses MongoDB’s change streams to capture data changes and publishes those changes to NATS JetStream. | Andrea Damiani | Community |
| NATS App | A simple NATS UI client for easy subject publish/subscribe debugging. | Zeal | Community |
| NATS Desktop | NATS Dekstop is a GUI alternative to the official NATS cli | DataFlows | Community |
| NATS UI | A solution for displaying NATS Streaming data streams in a user-friendly interface | Defacto Technology | Community |
| NATS Client UI | Cross-platform desktop and web GUI to watch, filter and publish messages and manage JetStream, Key-Value and Object Store. Windows (Microsoft Store), macOS (Homebrew), Linux and Docker. | Nathan Ver Beek | Community |
| NATS Connector Framework | A pluggable Java based framework to bridge the NATS messaging system and other technologies. | NATS Team | Synadia |
| NATS Redis PubSub | The NATS Redis publish subscribe connector is provided to facilitate the bridging of NATS and Redis Publish/Subscribe. | NATS Team | Synadia |
| NATS Elk | Utility for forwarding NATS monitoring data to ELK Stack | Vladimir Sundupey | Community |
| NATS Kafka Bridge | This project implements a multi-connector bridge between NATS or NATS streaming and Kafka topics. | NATS Team | Synadia |
| NATS-Mon | A realtime web based NATS monitor | Raül Pérez | Community |
| NATS MQ Series Bridge | This project implements a simple, but generic, bridge between NATS or NATS streaming and MQ Series queues and topics. | NATS Team | Synadia |
| NATS Kubernetes Operator | This operator manages NATS clusters atop Kubernetes, automating their creation and administration. | NATS Team | Synadia |
| NATS Replicator | This project implements a multi-connector bridge, copier, replicator between NATS and NATS streaming endpoints. | NATS Team | Synadia |
| RisingWave to NATS Connector | A RisingWave built-in connector that allows RisingWave to send messages to NATS. RisingWave is a distributed SQL streaming database that enables simple, efficient, and reliable processing of streaming data. | RisingWave Team | RisingWave Team |
| NATS-RPC Generator | RPC layer on top of NATS standardizing on Protocol Buffers. | Department of Biomedical and Health Informatics | Community |
| NATS Sniffer | A simple sniffer for NATS, the cloud native messaging system. | Paulo Pires | Community |
| NATS Spring Support | A Spring Cloud Stream Binder for NATS. | NATS Team | Synadia |
| NATS Stream Replicator | This project replicates streams between NATS streaming clusters. Ideal for mirroring streams across data centers. | R.I. Pienaar | Community |
| NATS Streaming Server on Kubernetes | This project contains a Docker image and a Helm chart to run NATS Streaming Server in the Kubernetes cluster. The NATS Streaming Server can run in fault tolerance mode. | Canh Ngo | Community |
| NATSBoard | Dashboard for monitoring NATS. It provides real-time information from NATS server. | Fatih Cetinkaya | Community |
| NATSSSE | A simple library to allow publishing, SSE subscriptions, request/reply, and KV operations over HTTP. | John Hooks | Community |
| NOPA | Store OPA bundles in NATS object storage and have the bundle updated in real time. | John Hooks | Community |
| nRPC is like gRPC, but over NATS | nRPC is an RPC framework like gRPC, but for NATS. It can generate a Go or Python client and server from the same .proto file that you’d use to generate gRPC clients and servers. The server is generated as a NATS MsgHandler. | nats-rpc team | Community |
| NUI | NATS UI - Free and open source UI to easily manage and explore servers, messages, streams, buckets both from desktop or web interface. | nats-nui | Community |
| Nvisible Inc Go ARI Proxy | An implementation of the [go-ari-library] used to connect to the Asterisk REST Interface for delivery of Events and Commands across a message bus. | Leif Madsen | Community |
| OpenFaaS NATS Streaming Connector | This is a queue-worker to enable asynchronous processing of function requests. | Alex Ellis | Community |
| PostgreSQL NATS extension | PostgreSQL extension for bidirectional NATS communications: Key/Value, Pub/Sub, Object Store, JetStream. | Luxms Group | Community |
| NATS Prometheus Exporter | The official NATS exporter for Prometheus, written in Go. It supports monitoring multiple NATS servers, is highly resilient to network outages, and can be embedded into go applications via an API. Metrics are exposed through a HTTP(S) interface for Prometheus to collect them. | NATS Team | Synadia |
| Prometheus | NATS exporter for Prometheus, written in Go. It extracts several metrics and provides them via the standard HTTP interface for Prometheus to collect them. | Lovoo | Community |
| Qaze - The NATS Management GUI | Qaze makes NATS cluster management easy. It provides an intuitive desktop client to explore & manage your NATS clusters. | Qaze | Community |
| Yii3 Queue Adapter for NATS | Uses NATS JetStream as queue for Yii asynchronous job processing | g41797 | Community |
| Rabbit-going-NATS | Tool which allows to passthrough messages fetched from RabbitMQ’s queue to NATS PubSub. Useful if you receive a data feed through RabbitMQ, but you need to redistribute it further to multiple clients. | IDCT Bartosz Pachołek | Community |
| Rancher NATS | This is an extended version of the official Docker image for nats. It adds support to set up a cluster easily onrancher. | Community | |
| Resgate | A Realtime + REST API Gateway for NATS to create web APIs with live data. It supports access control, caching, scaling, queries, and more. | Samuel Jirénius | Community |
| REST to NATS Proxy | This library provides a translation of HTTP requests to NATS. Client side is partly inspired by Gin to process requests | Radomír Sohlich | Community |
| NATS JetStream to RisingWave Connector | A RisingWave built-in connector that allows RisingWave to receive messages from NATS JetStream. RisingWave is a distributed SQL streaming database that enables simple, efficient, and reliable processing of streaming data. | RisingWave Team | RisingWave Team |
| RPC over NATS | Provides an RPC and pub/sub framework with first-class support for NATS. | Workiva | Community |
| Socket.io-NATS Connector | This connector enables multiple socket.io instances to broadcast and emit events to and from each other through NATS. | Edgar Ribeiro | Community |
| Spring NATS Server | Spring NATS Server for unit testing. | Yuna Morgenstern | Community |
| Spring NATS Streaming Server | Spring NATS Streaming Server for unit testing. | Yuna Morgenstern | Community |
| Symfony/Messenger NATS Bridge | The PHP Symfony NATS Messenger Bridge, enables the integration of NATS as the queuing mechanism for asynchronous operations. | IDCT Bartosz Pachołek | Community |
| Synadia Cloud | A global, extensible, multi-cloud NATS platform with an easy-to-use admin portal and API, all fully managed by Synadia. | Synadia | Community |
| Syslog sidecar for NATS | Receives, parses, filters syslog messages and publishes them to NATS JetStream | g41797 | Community |
| TCP/Websocket Gateway with NATS | An embeddable TCP and Websocket gateway/bridge with NATS, written in golang. | Bin Zhao | Community |
| Telegraf | The NATS consumer plugin reads from specified NATS subjects and adds messages to InfluxDB. The plugin expects messages in the Telegraf Input Data Formats. A Queue Group is used when subscribing to subjects so multiple instances of telegraf can read from a NATS cluster in parallel. | Cameron Sparr | Community |
| Timeplus source for NATS | Receives messages from NATS and NATS JetStream and publishes data to Timeplus streams. This is powered by https://benthos.dev/ | Gang Tao | Community |
| Websocket Gateway | A websocket gateway for NATS, usable as a backend for elm-nats and websocket-nats. | Orus.io | Community |
| websocket-nats | An in-browser websocket client for NATS, a lightweight, high-performance cloud native messaging system. | Josh Glendenning | Community |