git clone git@github.com:rbbydotdev/gnata-sqlite.git
cd gnata-sqlite
go build ./...
go test -race ./...Requires CGo:
go build -buildmode=c-shared -o gnata_jsonata.dylib ./sqliteRequires TinyGo:
tinygo build -o gnata-lsp.wasm -no-debug -gc=conservative -scheduler=none -panic=trap -target wasm ./editor/
wasm-opt -Oz --enable-bulk-memory gnata-lsp.wasm -o gnata-lsp.wasmcd editor/codemirror && npm install && npm run build| Directory | Purpose |
|---|---|
Root .go files |
Core JSONata 2.x engine (parser, evaluator, streaming) |
functions/ |
50+ stdlib function implementations |
internal/ |
Lexer, parser, evaluator, query planner internals |
sqlite/ |
Loadable SQLite extension (CGo) |
editor/ |
CodeMirror 6 language support + WASM LSP |
wasm/ |
WASM build entry point |
testdata/ |
JSONata conformance test suite (1,778 cases) |
- Fork the repo
- Create a branch (
git checkout -b feat/my-feature) - Make changes and add tests
- Run
go test -race ./... - Run
golangci-lint runif you have it installed - Commit with a descriptive message
- Open a PR
- Follow standard Go conventions (
gofmt,go vet) - Linting config is in
.golangci.yaml - Tests live alongside the code they test (
*_test.go) - Conformance tests use JSON datasets in
testdata/