Download
Here you will find the NATS Server and officially supported & community clients and our JetStream enabled clients . Our documentation provides detailed instructions on how to get started.
Also available are a wide variety of community contributed clients, connectors, and utilities. We are always happy to receive contributions to review - send us a PR, or contact us at info@nats.io to share what you have built using NATS!
NATS clients are used to connect to and communicate with NATS Server. If you would like to contribute your own client or add one not listed here, you can submit a pull request to update the contents of
this file
. Starred clients are maintained by official NATS Authors and belong to the NATS 2.2 release welcomed our newest persistence engine, JetStream. Additional JetStream enabled clients will be introduced soon. To add a new connector or utility, you can submit a pull request to update the contents of
this file
.Clients
nats-io
GitHub organization.NATS Clients
Language Description Developers Details Arduino NATS Arduino Client Josh Glendenning Asio C++ NATS Asio C++ Client Vlad Troinich Ballerina NATS Ballerina Client Ballerina
BallerinaC NATS C Client NATS Authors
Clojure NATS Clojure Client Employee Republic Crystal NATS Crystal Client NATS Authors
Joakim RepomaaDart NATS Dart Client David Gofman Deno NATS Deno Client NATS Authors
Elixir NATS Elixir Client NATS Authors
Sarat ChandraElm NATS Elm Client Christophe de Vienne Erlang NATS Erlang Client Yuce Tekol Go NATS Go Client NATS Authors
Haskell NATS Haskell Client Ondrej Palkovsky Java NATS Java Client NATS Authors
Mike HeathJava Android NATS Java Android Client Marek Kedzierski LabVIEW NATS LabVIEW Client Drew Herron Common Lisp NATS Common Lisp Client ccQ Lua NATS Lua Client Eric Pinto MicroPython NATS MicroPython Client M K Hari Balaji .NET NATS .NET Client NATS Authors
NGINX NATS NGINX Client NATS Authors
Nim NATS Nim Client Dmitry Dorofeev Node.js NATS Node.js Client NATS Authors
OCaml NATS OCaml Client Roman Chechyotkin
Vadim ShenderPascal NATS Pascal Client Vahid Nasehi Oskouei Perl NATS Perl Client Carwyn Moore PHP NATS PHP Client Dmitry Krokhin
Raül PérezPure Ruby NATS Pure Ruby Client NATS Authors
Python NATS Python Client Nikita Grishko Python Asyncio NATS Python Asyncio Client NATS Authors
Python Minimal NATS Python Minimal Client Eugene Van Den Bulke Python Tornado NATS Python Tornado Client NATS Authors
Python Twisted NATS Python Twisted Client John Lockwood C++/Qt/QML NATS C++/Qt/QML Client Petro Kazmirchuk Qt5 C++ NATS Qt5 C++ Client Petar Koretić Ruby NATS Ruby Client NATS Authors
Rust NATS Rust Client NATS Authors
David McNeil
Kevin HoffmanScala NATS Scala Client Teppei Yagihashi Swift NATS Swift Client Firman Maulana
aus der TechnikTcl NATS Tcl Client Petro Kazmirchuk WebSocket NATS WebSocket Client NATS Authors
NATS JetStream Enabled Clients
Language Description Developer Details Ballerina NATS Ballerina Client Ballerina C NATS C Client NATS Authors
Deno NATS Deno Client NATS Authors
Go NATS Go Client NATS Authors
Java NATS Java Client NATS Authors
.NET NATS .NET Client NATS Authors
Node.js NATS Node.js Client NATS Authors
PHP NATS PHP Client Dmitry Krokhin Pure Ruby NATS Pure Ruby Client NATS Authors
Python Asyncio NATS Python Asyncio Client NATS Authors
C++/Qt/QML NATS C++/Qt/QML Client Petro Kazmirchuk Rust NATS Rust Client NATS Authors
Tcl NATS Tcl Client Petro Kazmirchuk WebSocket NATS WebSocket Client NATS Authors
Connectors and Utilities
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 MarkouCommunity 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 Elasticsearch Allows you to take data from nats subjects/groups and pump these into Elasticsearch. Netlify 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 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 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 UI A solution for displaying NATS Streaming data streams in a user-friendly interface Defacto Technology 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 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 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 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 Synadia NGS NGS is a global communications system built on NATS.io. 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