NATS philosophy is simplicity.
The best way to get the NATS Streaming Server is to use one of the pre-built release binaries which are available for OSX, Linux (x86-64/ARM), Windows.
Of course you can build the latest version of the server from the master branch. The master branch will always build and pass tests, but may not work correctly in your environment. First you will need at least Go version 1.11+ installed on your machine to build the NATS Streaming Server.
Installation is just decompressing a zip file and copying the binary to an appropriate directory; you can also use your favorite package manager.
On Mac OS:
> brew install nats-streaming-server
Via Docker:
> docker pull nats-streaming
You can find the latest release of nats-streaming-server
here.
Download the zip file matching your systems architecture, and unzip. For this example, assuming version 0.14.2 of the server, and a Linux AMD64:
> curl -L https://github.com/nats-io/nats-streaming-server/releases/download/v0.14.2/nats-streaming-server-v0.14.2-linux-amd64.zip -o nats-streaming-server.zip
> unzip nats-streaming-server.zip -d tmp
Archive: nats-streaming-server.zip
creating: tmp/nats-streaming-server-v0.14.2-linux-amd64/
inflating: tmp/nats-streaming-server-v0.14.2-linux-amd64/README.md
inflating: tmp/nats-streaming-server-v0.14.2-linux-amd64/LICENSE
inflating: tmp/nats-streaming-server-v0.14.2-linux-amd64/nats-streaming-server
> cp tmp/nats-streaming-server-v0.14.2-linux-amd64/nats-streaming-server /usr/local/bin
If you have go installed, installing the binary is easy:
> go get github.com/nats-io/nats-streaming-server
This mechanism will install a build of master, which almost certainly will not be a released version. If you are a developer and want to play with the latest, this is the easiest way of obtaining it.
You can run the test suite from the nats-streaming-server
root directory:
go test -v -p=1 ./...
Some of the store tests require a SQL server to be running. To skip those, use this command instead:
go test -v -p=1 ./... -sql=false
To test your installation (provided the executable is visible to your shell):
> nats-streaming-server
[58061] 2019/05/22 13:56:45.463562 [INF] STREAM: Starting nats-streaming-server[test-cluster] version 0.14.2
[58061] 2019/05/22 13:56:45.463639 [INF] STREAM: ServerID: Avb51sMf9imRPVVwv6Ts0v
[58061] 2019/05/22 13:56:45.463657 [INF] STREAM: Go version: go1.11.10
[58061] 2019/05/22 13:56:45.463659 [INF] STREAM: Git commit: [not set]
[58061] 2019/05/22 13:56:45.464086 [INF] Starting nats-server version 1.4.1
[58061] 2019/05/22 13:56:45.464092 [INF] Git commit [not set]
[58061] 2019/05/22 13:56:45.464310 [INF] Listening for client connections on 0.0.0.0:4222
[58061] 2019/05/22 13:56:45.464328 [INF] Server is ready
[58061] 2019/05/22 13:56:45.495045 [INF] STREAM: Recovering the state...
[58061] 2019/05/22 13:56:45.495055 [INF] STREAM: No recovered state
[58061] 2019/05/22 13:56:45.749604 [INF] STREAM: Message store is MEMORY
[58061] 2019/05/22 13:56:45.749658 [INF] STREAM: ---------- Store Limits ----------
[58061] 2019/05/22 13:56:45.749664 [INF] STREAM: Channels: 100 *
[58061] 2019/05/22 13:56:45.749668 [INF] STREAM: --------- Channels Limits --------
[58061] 2019/05/22 13:56:45.749671 [INF] STREAM: Subscriptions: 1000 *
[58061] 2019/05/22 13:56:45.749675 [INF] STREAM: Messages : 1000000 *
[58061] 2019/05/22 13:56:45.749678 [INF] STREAM: Bytes : 976.56 MB *
[58061] 2019/05/22 13:56:45.749682 [INF] STREAM: Age : unlimited *
[58061] 2019/05/22 13:56:45.749686 [INF] STREAM: Inactivity : unlimited *
[58061] 2019/05/22 13:56:45.749690 [INF] STREAM: ----------------------------------