2022-12-08 14:10:34 -08:00
2022-11-09 14:37:15 -08:00
2022-11-09 14:37:15 -08:00
2022-11-09 14:37:15 -08:00
2022-11-18 10:49:14 -08:00
2022-11-09 14:37:15 -08:00

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 server
  • SONIC_PORT - tcp port Sonic server is listening on
  • SONIC_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.

Description
Simple demo of the Sonic search engine.
Readme 204 KiB
Languages
Nim 97.5%
Shell 2.5%