46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
# SonicClient
|
|
This is a rudimentary (Sonic)[https://github.com/valeriansaliou/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:
|
|
|
|
```sh
|
|
$ docker-compose up -d; docker-compose logs -f
|
|
```
|
|
|
|
## Client
|
|
To build the client you need a (Nim)[https://nim-lang.org/] compiler
|
|
for your target architecture; once it's available, along with the
|
|
`nimble` tool, you can build the client with:
|
|
```sh
|
|
$ 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_HOST`
|
|
* `SONIC_PORT`
|
|
* `SONIC_SECRET`
|
|
|
|
You may use any method to set them up, and the `.envrc` method
|
|
is just a convenience for those that use `direnv`.
|