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
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:
$ nimble build --verbose -d:release
and the binary will be left in the ./dist directory.
Usage
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_HOSTSONIC_PORTSONIC_SECRET
You may use any method to set them up, and the .envrc method
is just a convenience for those that use direnv.