nats-server | Performance server for , the cloud and edge native | Messaging library

 by   nats-io Go Version: v2.9.18 License: Apache-2.0

kandi X-RAY | nats-server Summary

kandi X-RAY | nats-server Summary

nats-server is a Go library typically used in Messaging applications. nats-server has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

NATS is a simple, secure and performant communications system for digital systems, services and devices. NATS is part of the Cloud Native Computing Foundation (CNCF). NATS has over 40 client language implementations, and its server can run on-premise, in the cloud, at the edge, and even on a Raspberry Pi. NATS can secure and simplify design and operation of modern distributed systems.

            kandi-support Support

              nats-server has a medium active ecosystem.
              It has 12898 star(s) with 1246 fork(s). There are 388 watchers for this library.
              There were 1 major release(s) in the last 6 months.
              There are 203 open issues and 1121 have been closed. On average issues are closed in 1034 days. There are 24 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of nats-server is v2.9.18

            kandi-Quality Quality

              nats-server has 0 bugs and 0 code smells.

            kandi-Security Security

              nats-server has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              nats-server code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              nats-server is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              nats-server releases are available to install and integrate.
              It has 163175 lines of code, 5229 functions and 153 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of nats-server
            Get all kandi verified functions for this library.

            nats-server Key Features

            No Key Features are available at this moment for nats-server.

            nats-server Examples and Code Snippets

            No Code Snippets are available at this moment for nats-server.

            Community Discussions


            How do I connect the app running using Nodejs with the service dependencies running using docker-compose
            Asked 2022-Mar-11 at 22:23

            I am trying to run this repository ( I am running the app separately with service dependencies being run in docker-compose. However, my app is not able to connect to the redis service running in the docker-compose file. I get the following error



            Answered 2022-Mar-05 at 11:12

            Can you please try cloning this repo:


            Then run docker compose up.

            Can't see any errors and UI comes up.



            How to add helm charts as dependencies to my chart, but provide them with custom values.yml?
            Asked 2022-Jan-15 at 10:50

            I am currently creating a helm chart for my fullstack application, and I would like to install a nats helm chart to it as a dependency. I know I can add it as a dependency in the Charts.yml file, but how can I provide the nats chart with a Values.yml to overrride the default nats chart values? What I would like is that when I do a helm install for my application, it also installs the nats dependency but with custom values.yml.

            chart.yml dependency section



            Answered 2022-Jan-15 at 10:50

            This is documented in Helm website

            Overriding Values from a Parent Chart

            so in your top level chart's values.yaml, use construct like this:



            Performance gains when using the exact same encryption/decryption mechanism for everyone participating in message-exchange via nats-server?
            Asked 2021-Dec-23 at 14:43

            Essentially what the subject says. I was wondering if there are there benefits to be gained performance-wise by using the same encryption/decryption mechanism when clients communicate via messages sent-to/received-from the same nats server.

            I have posed the same question here if anyone is interested:


            Consider for instance the following two scenarios for nats-based communication:

            • Scenario#1:

            A publisher (P) is publishing over to nats on subject "", using encryption-decryption-scheme (A) with his own encryption-key (A)

            A consumer (C) is subscribed to nats-subject "", using encryption-decryption-scheme (B) with his own encryption-key (B)

            In this scenario I assume that that nats-server will decrypt messages published by (P) using decryption scheme (A) examine the subject and forward "" messages over to consumer (C) after having re-encrypted these messages using encryption-scheme (B).

            • Scenario#2:

            A publisher (P) is publishing over to nats on subject "", using encryption-decryption-scheme (A) with his own encryption-key (A)

            A consumer (C) is subscribed to nats-subject "", using the exact same encryption-decryption-scheme (A) as the publisher

            In this scenario I assume that that nats-server would only need to decrypt just the subject of the message published by (P) using decryption scheme (A) and after examining the subject it would forward "" messages over to consumer (C) by "copy-pasting" the payload (data) of the message "as-is" since the encryption-decryption mechanism is the exact same.

            I guess this symmetry in encryption-decryption should provide better performance when the load is high.

            Am I right in these assumptions? Or do I miss something? I haven't seen anyone pointing out scenario#2 as a means to boost performance and reduce latency (potentially reducing error rates as well).

            Thoughts? Insights? Links to relevant documentation?



            Answered 2021-Dec-23 at 14:43

            Got a response from user "Todd Beets" in this thread:


            << NATS does not do encrypt/decrypt at the NATS Protocol [1] (Layer 7) level as in your assumption.

            "On the wire" NATS does fully support TLS with NATS clients [2].

            As TLS terminates at a NATS server, in affect, NATS is playing a pattern as in Scenario 1 (i.e. 1..N subscribing NATS Clients have independent TLS connections and keys).


            [2] >>

            (emphasis mine)



            How does NATS / JetStream "remember" subscribers?
            Asked 2021-Dec-06 at 15:17

            I'm doing my first steps with NATS and see behavior I cannot make sense of, even after reading the docs quite carefully. I have a local NATS server (2.6.5) running. It was started with



            Answered 2021-Dec-06 at 15:17

            When creating a pull subscription, the jetstream client API also creates a durable consumer with matching consumer options, in this case the stream name and a durable name (the second argument).



            Unable to attach or mount volumes: timed out waiting for the condition
            Asked 2021-Oct-13 at 02:32

            One of the pods in my local cluster can't be started because I get Unable to attach or mount volumes: unmounted volumes=[nats-data-volume], unattached volumes=[nats-data-volume nats-initdb-volume kube-api-access-5b5cz]: timed out waiting for the condition error.



            Answered 2021-Oct-13 at 02:32

            ...if I remove nats-data-volume and keep nats-initdb-volume, it's started successfully.

            This PVC cannot be mounted twice, that's where the condition cannot be met.

            Looking at your spec, it seems you don't mind which worker node will run your postgress pod. In this case you don't need PV/PVC, you can mount hostPath directly like:



            NATS Stream creation fail
            Asked 2021-Sep-30 at 16:04

            When I try to create a stream on the local NATS server get the error. The connection established successfully but on jsm.addStream(conf) request broke.

            I'm using maven artifact:



            Answered 2021-Sep-27 at 21:44

            Looks like you are not starting your nats-server with JetStream enabled, add -js to the arguments passed to nats-server or add the following section to your server config file (adjust the server's name and storage path to your liking of course):



            Testing NATS-streaming in Kubernetes with minimal effort
            Asked 2021-May-10 at 08:52

            I wanted to test a very basic application for NATS-streaming on Kubernetes. To do so, I followed the commands from the official NATS-docs.

            It basically comes down to running



            Answered 2021-May-10 at 08:52


            NATS with moleculer. How can I change NATS max_payload value?
            Asked 2021-Jan-09 at 18:38

            My problem is that I need to increase max_payload value that NATS receive but I have no idea where I can do it.

            The project is using Moleculer and NATS is created as a container with docker.

            When I try to make a request which is bigger than 1MB NATS returns:



            Answered 2021-Jan-09 at 09:08

            You should create a configuration file for NATS. And push it to the container as a Docker volume and set the command as -c nats-server.conf




            What is the CMD command for nats-server inside Dockerfile
            Asked 2020-Dec-04 at 09:48

            I am currently building an application using NestJS by following microservice architecture. And use NATS as a messaging system. It works fine on my local machine but I am unable to dockerized the NATS server.

            The folder structure of my project:



            Answered 2020-Dec-04 at 00:48

            Check the Dockerfile and you'll notice that ENTRYPOINT is set to /nats-server and CMD is the parameters to ENTRYPOINT (--config nats-server.conf in that case). Unless you extend the nats image you don't need to build a new one based on it (remove build: ./nats from the compose file). Overriding the default CMD can be achieved by setting command: on the docker-compose.yml.


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install nats-server

            You can download it from GitHub.


            Official documentationFAQWatch a video overview of NATS to learn more about its origin story and design philosophy.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Messaging Libraries

            Try Top Libraries by nats-io


            by nats-ioGo


            by nats-ioJavaScript


            by nats-ioRuby


            by nats-ioRust