NATS uses cookies to ensure you get the best experience on our website. Continuing to use this site assumes compliance with our Privacy Policy.

Here you will find the NATS Server (for simple, fast publish-subscribe) , NATS Streaming Server (for data streaming and persistence), and officially supported 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 to share what you have built with us!

Connectors and Utilities

Apache FlinkAllows Apache Flink to send/receive a stream of string based messages to/from NATS.Matthew RingCommunity
Apache SparkProvides an Apache Spark (a fast and general engine for large-scale data processing) integration with NATS.Laurent MagninCommunity
AWS NATSThis repository contains tools and templates to help using NATS in the Amazon Web Services platform.Danko MiocevicCommunity
Elastic BeatsTrack NATS metrics and logs with dedicated modules of Metribeat and Filebeat agents.Stamatis Katsaounis, Michael Katsoulis, Chris MarkouCommunity
CoreOS ClusteringNATS clustering made easy with CoreOS, etcd2 and Docker.Paulo PiresCommunity connector for NATSDeepstream message connector for NATSnxteditionCommunity
Dokku-NATSNATS plugin for Dokku, a PaaS PlatformJose Diaz-GonzalezCommunity
ElasticsearchAllows you to take data from nats subjects/groups and pump these into Elasticsearch.NetlifyCommunity
Fluent BitThe NATS output connector allows to flush your Fluent Bit records into a NATS Server endpointFluent BitCommunity
Fluentd Event CollectorNATS plugin for fluentd Event CollectorCloud Foundry CommunityCommunity
A Gatling to NATS ConnectorThe 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 MagninCommunity
HemeraA Node.js microservices toolkit for NATS.Dustin DeusCommunity
KubernetesNATS cluster on top of Kubernetes made easy.Paulo PiresCommunity
LogrusNATS hook for Logrus - helpers assume you are using a TLS connection.Ryan NealCommunity
Logrus-NATSA Logrus hook for sending data to NATS.Erik HowardCommunity
NATS Connector FrameworkA pluggable Java based framework to bridge the NATS messaging system and other technologies.NATS TeamSynadia
NATS Redis PubSubThe NATS Redis publish subscribe connector is provided to facilitate the bridging of NATS and Redis Publish/Subscribe.NATS TeamSynadia
NATS ElkUtility for forwarding NATS monitoring data to ELK StackVladimir SundupeyCommunity
NATS-MonA realtime web based NATS monitorRaül PérezCommunity
NATS Kubernetes OperatorThis operator manages NATS clusters atop Kubernetes, automating their creation and administration.NATS TeamSynadia
NATS-RPC GeneratorRPC layer on top of NATS standardizing on Protocol Buffers.Department of Biomedical and Health InformaticsCommunity
NATS SnifferA simple sniffer for NATS, the cloud native messaging system.Paulo PiresCommunity
NATS Stream ReplicatorThis project replicates streams between NATS streaming clusters. Ideal for mirroring streams across data centers.R.I. PienaarCommunity
NATS Streaming Server on KubernetesThis 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 NgoCommunity
NATSBoardDashboard for monitoring NATS. It provides real-time information from NATS server.Fatih CetinkayaCommunity
nRPC is like gRPC, but over NATSnRPC 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 teamCommunity
Nvisible Inc Go ARI ProxyAn 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 MadsenCommunity
OpenFaaS NATS Streaming ConnectorThis is a queue-worker to enable asynchronous processing of function requests.Alex EllisCommunity
NATS Prometheus ExporterThe 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 TeamSynadia
PrometheusNATS exporter for Prometheus, written in Go. It extracts several metrics and provides them via the standard HTTP interface for Prometheus to collect them.LovooCommunity
Rancher NATSThis is an extended version of the official Docker image for nats. It adds support to set up a cluster easily onrancher.Community
ResgateA Realtime + REST API Gateway for NATS to create web APIs with live data. It supports access control, caching, scaling, queries, and more.Samuel JiréniusCommunity
REST to NATS ProxyThis library provides a translation of HTTP requests to NATS. Client side is partly inspired by Gin to process requestsRadomír SohlichCommunity
RPC over NATSProvides an RPC and pub/sub framework with first-class support for NATS.WorkivaCommunity ConnectorThis connector enables multiple instances to broadcast and emit events to and from each other through NATS.Edgar RibeiroCommunity
TCP/Websocket Gateway with NATSAn embeddable TCP and Websocket gateway/bridge with NATS, written in golang.Bin ZhaoCommunity
TelegrafThe 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 SparrCommunity
Websocket GatewayA websocket gateway for NATS, usable as a backend for elm-nats and websocket-nats.Orus.ioCommunity
websocket-natsAn in-browser websocket client for NATS, a lightweight, high-performance cloud native messaging system.Josh GlendenningCommunity

Please contact us to add your external client to the download list.