nats-server

High-Performance server for NATS.io, the cloud and edge native messaging system.

APACHE-2.0 License

Stars
14.9K
Committers
177

Bot releases are hidden (Show)

nats-server - Release v1.4.1

Published by NATS-CI over 5 years ago

Changelog

Go Version

  • 1.11.5: Both release executables and Docker images are built with this Go release.

Fixed

  • Possible delay in flushing data (#901)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.4.0...v1.4.1

nats-server - Release v1.4.0

Published by NATS-CI almost 6 years ago

Changelog

Go Version

  • 1.11.4: Both release executables and Docker images are built with this Go release.

Added

  • Warning if passwords are stored in plain text in config. Redact password from CONNECT trace.
  • Support for cluster permissions reload (#753)
  • Support a path as argument to --signal. Thanks to @pires for the contribution (#838)
  • RemoteAddress() to the CustomClientAuthentication interface. Thanks to @ripienaar for the contribution (#837)

Changed

  • Cluster permissions moved out of cluster's authorization (#747)

Fixed

  • Ports file on Windows (#733)
  • Memory usage for failed TLS connections (#872)
  • Issue with configuration reload for some boolean parameters, such as logtime. Thanks to @sazo for the report (#874, #879)
  • Reduced risk of slow consumer in fan in scenarios (#876)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.3.0...v1.4.0

nats-server - Release v1.3.0

Published by NATS-CI about 6 years ago

Changelog

Go Version

  • 1.11: Both release executables and Docker images are built with this Go release.

Added

  • Allow/Deny permissions (#725, #727). It is now possible to specify deny permissions
    for subjects. For instance:
authorization {
    myUserPerms = {
      publish = {
        allow = "*.*"
        deny = ["SYS.*", "bar.baz", "foo.*"]
      }
      subscribe = {
        allow = "foo.*"
        deny = "foo.baz"
      }
    }

    users = [
        {user: myUser, password: pwd, permissions: $myUserPerms}
    ]
}

means that user myUser is allowed to publish to subjects with 2 tokens (allow = "*.*") but not to subjects matching SYS.*, bar.baz or foo.*. It can subscribe to subjects matching foo.* but not foo.baz.

Improved

  • Scalability with high cardinality of subscriptions. Thanks to @gwik for the report (#726, #729)

Fixed

  • Unexpected Authorization Error during configuration reload (#270)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.2.0...v1.3.0

nats-server - Release v1.2.0

Published by NATS-CI over 6 years ago

Changelog

Go Version

  • 1.10.3: Both release executables and Docker images are built with this Go release.

Added

  • License scan status. Thanks to @xizhao (#658)
  • PSE file for OpenBSD. Thanks to @gabeguz (#661)
  • Best practices badge (#679)
  • Governance and Maintainers files (#703)
  • New rtt field in /connz monitoring endpoint. This measures the time between the server sent a PING to a client and the time it got the PONG back (#683)
  • Ability to filter /connz by client ID (CID). Example: http://localhost:8222/connz?cid=100. Note that the CID is now sent back to the client. Client libraries have not yet been updated to report this to the application (#687)
  • Tracking of closed connections and reason for their closing. To filter closed connections, use ?state=closed as in http://localhost:8222/connz?state=closed. Possible values for state are open, closed, all. The result now includes a new field reason that gives a reason why the connection was closed, for instance reason: Client means that the client closed the connection (#692). For example:
    {
      "cid": 2,
      "ip": "::1",
      "port": 63065,
      "start": "2018-07-05T11:00:16.09747933-06:00",
      "last_activity": "2018-07-05T11:00:21.441585272-06:00",
      "stop": "2018-07-05T11:00:23.445200428-06:00",
      "reason": "Slow Consumer (Write Deadline)",
      "uptime": "7s",
      "idle": "2s",
      "pending_bytes": 8265,
      "in_msgs": 0,
      "out_msgs": 4178,
      "in_bytes": 0,
      "out_bytes": 534784,
      "subscriptions": 1,
      "lang": "go",
      "version": "1.5.0"
    },
  • New /connz?sort= sort options: start, stop and reason (#705)
  • Support for "echo" feature. By default, if a connection subscribes on foo and publishes on foo, it will receive those messages. To prevent this, the client's CONNECT protocol includes a new boolean field named echo that should be set to false. The server is also sending a new int field proto in the INFO protocol to the client, allowing the client library to decide if it can use the "echo" feature or not. Client libraries have not yet been updated to take advantage of this feature (#698)
  • Ability to specify a maximum number of subscriptions (per connection) (#707)
  • Ability to get details about a subscription with /subsz?subs=1 (#707). For instance: http://localhost:8222/subsz?subs=1 may return:
"subscriptions_list": [
    {
      "subject": "foo",
      "sid": "1",
      "msgs": 1000,
      "cid": 2
    }
  ]
  • Ability to test for matching subscriptions on a given subject (#707). For instance: http://localhost:8222/subsz?subs=1&test=foo would return the subscriptions_list with subscriptions matching the test subject. If no match is found, the subscriptions_list is not present.

Improved

  • Authorization and Authentication documentation in README (#673, #678)
  • Big performance improvement for fan-out situations (one message to many subscriptions). Special thanks to @ripienaar that has been helping test the solution at scale (#680).

Fixed

  • Display of cluster port when configured as random (#657)
  • Inability to remove a route from configuration (with configuration reload) if the remote server is not running (#682)
  • Do not send more than one error when client sends invalid protocol. Thanks to @danielwertheim for the report (#684)
  • Possible truncation of the subscription interest list when route connects (#680)
  • Route behavior in high fan-out (slow consumer) (#680)

Updated

  • Build requirements in the README (now require Go 1.9+ to build from source) and default cipher suites (#689)
  • Elevate TLS statements from DBG to ERR. Thanks to @ripienaar for the report (#690)

https://github.com/nats-io/gnatsd/compare/v1.1.0...v1.2.0

nats-server - Release v1.1.0

Published by NATS-CI over 6 years ago

Changelog

Go Version

  • 1.9.4: Both release executables and Docker images are built with this Go release.

Added

  • Monitoring endpoint functions (Varz(), etc...) for those embedding NATS Server in their application. Thanks to @ripienaar for the report (#615)

Improved

  • Better attempt at delivering messages to queue subscriptions. Thanks to @vkhorozvs (#638)
  • Compatibility with JSON in configuration parser (#653)

Fixed

  • Cluster topology change possibly not sent to clients (#631, #634)
  • Race between delivering messages to queue subscriptions and subscriptions being unsubscribed (#641)
  • Close log file on log re-open signal. Thanks to @acadiant for the report (#644)

Changed

  • Moved to Apache 2.0 License following move to CNCF (#650)

Removed

  • ssl_required field in INFO protocol. This was deprecated some time ago. The correct field to use is TLSRequired (#655)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.0.6...v1.1.0

nats-server - Release v1.0.6

Published by NATS-CI over 6 years ago

Changelog

Go Version

  • 1.9.4: Both release executables and Docker images are built with this Go release.

Added

  • ARM32v6 Release build (#629)
  • Server ID to /connz and /routez (#598)
  • Server notifies clients when server join/leave/rejoins cluster. Thanks to @madgrenadier for feedback (#606, #626)
  • Client and Cluster Advertise address (#608)
  • GitCommit of release is printed in the banner (#624)

Improved

  • Various internal optimizations (#580, #585)

Changed

  • Log level for route errors were elevated from debug to error (#611)

Fixed

  • Profiling and Monitoring timeout issues (#603)
  • /connz could be delayed for TLS clients still in TLS handshake (#604)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.0.4...v1.0.6

nats-server - Release v1.0.4

Published by nats-ci-user over 6 years ago

Changelog

Go Version

  • 1.8.3: Both release executables and Docker images are built with this Go release.

Added

  • ARM64v8 Release build (#567)
  • Systemd unit file. Thanks to @RedShift1 (#587)
  • Custom Authentication. Thanks to @cdevienne (#576)

Fixed

  • Subscriptions not closed in the cluster when using auto unsubscribe. Thanks to @ingosus (#551)
  • Use of * and > in subjects as literals. Thanks to @s921102002 for the report (#561)
  • Clarification about token usage. Thanks to @sarbash (#563)
  • Sublist insert and remove with wildcards in literals (#573)
  • Override from command line not always working (#578)
  • Name of selected new cipher suites (#592)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.0.2...v1.0.4

nats-server - Release v1.0.2

Published by nats-ci-user over 7 years ago

Changelog

Go Version

  • 1.7.6

Fixed

  • Windows Docker Images failure to start with error: “The service process could not connect to the service controller” (#544)
  • Unnecessary attempt to reconnect a route. When server B connected to A and B was then shutdown, A would try to reconnect to B once, although the route was implicit (#547)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v1.0.0...v1.0.2

nats-server - Release v1.0.0

Published by nats-ci-user over 7 years ago

Changelog

Great community effort! Special thanks to Elton Stoneman (@sixeyed) for his help in verifying that the Windows Docker images build properly!

Go Version

  • 1.7.6

Added

  • Ability to configure number of connect retries for implicit routes. Thanks to @joelanford for reporting an issue leading to this PR (#409)
  • GetTLSConnectionState() in ClientAuth interface. This returns the TLS ConnectionState if TLS is enabled. Thanks to @cdevienne (#385)
  • Windows Event logging (#413)
  • curve_preference parameter to specify the preferred order (#412)
  • ChaCha cipher (#415)
  • write_deadline parameter to make the deadline when flushing messages to clients configurable (#421, #488)
  • Reject clients connecting to route’s listen port (#424)
  • Support for authentication token in configuration file. Thanks to @qrpike for the report (#465)
  • Ability to get the server’s HTTP Handler (#481)
  • MonitorAddr() and ClusterAddr() return the monitoring an route listener respectively (#512)
  • Configuration Reload (#499, #503, #506, #515, #519, #523, #524)

Removed

  • Global logger (#501)
  • Auth package and Server.SetClientAuthMethod() and Server.SetRouteAuthMethod() (#474)

Improved

  • Parsing of subscription IDs for routes. Thanks to @miraclesu (#478)
  • Handling of escaped substrings. Thanks to @ericpromislow (#482)

Fixed

  • Possible data races with /varz and /subsz monitoring endpoints (#445)
  • PINGs not sent to TLS Connections (clients or routes). Thanks to @stefanschneider for the report (#459)
  • Not all executables statically linked when release issued. Thanks to @leifg for the report (#471)
  • Check for negative offset and/or limit when processing /connz monitoring endpoint (#492)
  • Authorization timeout and TLS. Prevents errors such as tls: oversized record received (#493)
  • Unexpected behavior when providing both HTTP and HTTPS monitoring ports (#497)
  • HTTP Server not shutdown on server shutdown if HTTP server is started manually (#498)
  • Possible DATA RACE when polling the routez endpoint and a route disconnects (#540)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v0.9.6...v1.0.0

nats-server - Release v0.9.6

Published by nats-ci-user almost 8 years ago

Changelog

Go Version

  • 1.7.4

Added

  • Support for Go 1.7
  • Staticcheck verifications in Travis
  • Ability to configure ping_interval and ping_max in configuration file (#372)
  • Support for integer suffixes, e.g. 1k 8mb, etc.. (#377)
  • Support for ‘include’ to configuration files (#378)
  • Ability to make server re-open log file using SIGUSR1 - for log rotation (#379,#382)
  • Support for max_connections parameter (#387, #389)

Updated

  • Docker build to use go 1.7.4
  • Generate syslog tag based on executable/link name (#362)

Fixed

  • Client certificate was required but not verified even when configuration parameter verify was set to true (#337)
  • Non-ASCII quotes in monitoring’s HTML output (#353)
  • It was possible to configure max_connections in previous releases, but it had no effect (#387, #389)
  • Non flags in command line parameters would cause the server to ignore remaining flags but not report an error (#393)

Removed

  • MaxPending option and max_pending_size, max_pending configuration parameters. Those were never used (#383)

Complete Changes

https://github.com/nats-io/gnatsd/compare/v0.9.4...v0.9.6

nats-server - Release v0.9.4

Published by derekcollison about 8 years ago

Changelog

Go Version

  • 1.6.3

Added

  • Option to disable advertisement of cluster IP addresses to clients.

Changed

  • HTTP host, if not specified, now defaults to client’s host (-a command line or Options.Host)

Fixed

  • When server listens to all interfaces (0.0.0.0 or ::), it now advertises only global IPs instead of all resolved IPs (which included link local IPs).
  • You can now specify an IPv6 address int the -cluster URL.
  • Server could panic when user would poll Varz from monitoring port concurrently with other endpoints (Varz or others).
  • Data race with unsubscribe and connection close

Complete changes

https://github.com/nats-io/gnatsd/compare/v0.9.2...v0.9.4

nats-server - Release v0.9.2

Published by derekcollison about 8 years ago

Changelog

Go Version

  • 1.6.3

Added

  • Multi-user and authorization
  • Cluster discovery pushed to clients

Updated

  • Dockerfile to use go 1.6.3
  • Clustering section in README

Improved

  • Route performance for larger messages

Fixed

  • Route/Cluster command line parameters/Options override
  • Protocol parser to prevent memory attacks

Complete changes

https://github.com/nats-io/gnatsd/compare/v0.8.1...v0.9.2

nats-server - Release v0.8.1

Published by derekcollison over 8 years ago

Changelog

Go Version

  • 1.6.2

Bug fix release.

nats-server - Release v0.8.0

Published by derekcollison over 8 years ago

Changelog

Go Version

  • 1.6.2

Changes

  • Cluster Auto-Discovery via seed hosts.
  • Monitoring updates for varz and connz.
  • Performance improvements in publish, subscribe and queue subscriptions.
  • New automated release process.
  • Vendor support and upgrade to Go 1.6.2 for supported release builds.
  • Official support for Windows.
  • Removed original hash and hashmap code, new 3 layer sublist cache design.
  • Various bug fixes.
  • Complete details - https://github.com/nats-io/gnatsd/compare/v0.7.2...v0.8.0
nats-server - Release v0.7.2

Published by derekcollison almost 9 years ago

nats-server - Release v0.7.0

Published by derekcollison almost 9 years ago

nats-server - Release v0.6.8

Published by derekcollison about 9 years ago

nats-server - Release v0.6.6

Published by derekcollison about 9 years ago

I recut this release with Go1.4.2 since there are issues with Go1.5.

nats-server - Release v0.6.4

Published by derekcollison about 9 years ago

nats-server - Release v0.6.2

Published by derekcollison about 9 years ago