Initial commit

This commit is contained in:
Gustavo Cordova Avila
2022-11-09 14:37:15 -08:00
commit e1423a70d5
11 changed files with 445 additions and 0 deletions

45
README.md Normal file
View File

@@ -0,0 +1,45 @@
# 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`.