Skip to content

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

13,355 Commits

Folders and files

Repository files navigation

This fork of the NATS server was planned to promote my UDS patches to NATS. It looks like the scope of the changes is not acceptable by upstream.

I need these changes for a project of mine and keep the fork around in case NATS will reconsider adding them later on. However, due to my time constraints I probably can't keep up syncing changes, so there is a good chance this becomes a hard fork in the future.

If you are interested in or need these changes and require robust support, I am - in principle - available for hire.

The project I am working on is "System NATS" or snats. That's the working title. It's an embedded NATS server based on this fork that operates as a system bus for Linux nodes (similar to DBUS) integrating into a communication mesh. This in turn is part of the onpremix project, a site/organization/network/fleet management solution for on-premise deployments, e.g. home labs, small business infrastructure or alternative cloud/edge solutions. Both of these projects will be open source projects when they reach a sufficient maturity level. They are not yet public though.

So while I am actively using this fork and maintain it for my use cases, it's not really supported in its current form.

Changes in this fork

Full documentation is in the wiki:

  • UNIX domain sockets (implemented) — a UDS transport for the server, with peer-credential (uid/gid/pid) authentication. See UNIX domain sockets and the UDS permission model.
  • file:// nkey references (implemented) — any nkey or seed in the config may be a file:// URL, read at runtime, so secrets stay out of the config file. See NKey file references.
  • Peer authorization (planned) — propagate the publisher's identity to subscribers. See Peer authorization.

Related projects

The UDS transport needs a client that can dial a Unix socket. These companion forks add that:

  • natscli — the nats CLI, with a nats+uds:// URL scheme for UDS connections.
  • nats.py — Python client with UDS support.
  • nats.zig — Zig client with UDS support.

Programmatic Go clients need no fork — set a custom dialer (nats.SetCustomDialer) that dials unix.

Original Upstream README

NATS Logo

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.

License Build Release Slack Coverage Docker Downloads GitHub Downloads CII Best Practices Artifact Hub

Documentation

Contact

  • Twitter: Follow us on Twitter!
  • Google Groups: Where you can ask questions
  • Slack: Click here to join. You can ask questions to our maintainers and to the rich and active community.

Contributing

If you are interested in contributing to NATS, read about our...

Roadmap

The NATS product roadmap can be found here.

Adopters

Who uses NATS? See our list of users on https://nats.io.

Security

Security Audit

A third party security audit was performed by Trail of Bits following engagement by the Open Source Technology Improvement Fund (OSTIF). You can see the full report from April 2025 here.

Reporting Security Vulnerabilities

If you've found a vulnerability or a potential vulnerability in the NATS server, please let us know at nats-security.

License

Unless otherwise noted, the NATS source files are distributed under the Apache Version 2.0 license found in the LICENSE file.

About

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

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages