Gnosis Language Bindings
Parent: Gnosis README
This directory contains thin client bindings for invoking the gnosis CLI from many host languages.
Getting Started
- What: small language clients that call the
gnosisCLI from Python, Go, Java, C#, Rust, C, C++, PHP, Ruby, Swift, Kotlin, Lua, Haskell, Erlang, and MQL5. - Why: they let non-TypeScript projects lint, analyze, verify, run, or test Gnosis topologies without reimplementing the CLI protocol.
- How: pick the binding for your host language and call the shared command contract in
binding-contract.json. - Next: start with the command contract, then the binding file for your language.
The bindings are intentionally subprocess-based so they stay dependency-light and work the same way across runtimes.
Command Contract
The shared command shape is documented in binding-contract.json.
All bindings expose helpers for:
lint <topology.gg> [--target <workers|node|bun|agnostic>] [--json]analyze <path> [--json]verify <topology.gg> [--tla-out <dir>]run <topology.gg> [--native]test <topology.test.gg>
Each helper returns process status and output (exit_code, stdout, stderr) or the closest equivalent supported by that language runtime.