SonicClient
This is a rudimentary Sonic command-line client that I'm using to interact with a locally running service.
Server
You'll need a server running, to spin one up you can use the docker-compose.yml file in the demo directory, which pulls down the docker image from the docker hub.
The required directory structure (data/kv and data/fst) is already in place, so to spin it up you only need to:
$ docker-compose up -d; docker-compose logs -f
Press ^C whenever you want to stop viewing the server's logs.
Client
To build the client you need a Nim compiler for your target architecture; once it's available, along with the nimble tool; you can build the client with:
$ # Build with a locally set up Nim compiler
$ nimble build --verbose -d:release
and the binary will be left in the ./dist directory.
Use
Once the client is build, run:
$ ./dist/sc --help
to display the commands and options required.
Environment variables
The file _envrc contains an .envrc template for your convenience; the client needs these three environment variables set up so it knows what server to interact with:
SONIC_HOST- hostname or IP address of Sonic serverSONIC_PORT- tcp port Sonic server is listening onSONIC_SECRET- password to connect to the server
You may use any method to set them up, and the .envrc method is just a convenience for all direnv users.