This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
Run make
, the executable named basenine
should be placed in the project root.
To cross-compile run make build-all
. It places a bunch of executables prefixed basenine_
into build/
directory.
The server/
directory contains the code of Basenine.
server/parser.go
contains the lexer and the grammar definition to parse BFL.
server/precompute.go
contains the code for doing compile-time evaluations on a given BFL query.
server/eval.go
contains the code for evaluating boolean truthiness of a given BFL query and the corresponding JSON document.
server/macro.go
contains the codef for definining and expanding macros on BFL queries.
server/server.go
is the main file that implements the TCP server's itself. It's also responsible to partition the database
and binding the TCP-based protocol with functionalities provided by the files above.
client/
directory contains the client implementation for various languages. These are the official clients that are
developed and maintained by the Basenine's itself.
Run make test
, it will run the tests for both the server and the clients. It should exit with 0
.
Also check the coverage info printed into stdout
.
Open a pull request from your fork to main
branch of Basenine.