v__VERSION__

Download

One reference implementation, in C — bindings wrap it for other runtimes rather than reimplementing it. Pick what matches where your code runs.

Native library — C / C++

anvil-v0.8.0-rc-linux-x86_64.tar.gz — static (libanvil.a) and shared (libanvil.so) release builds, plus the public headers. Linux x86_64 only today; other platforms build from source until real cross-platform CI exists.
Download
tar -xzf anvil-v0.8.0-rc-linux-x86_64.tar.gz
gcc your_program.c -I .../include -L .../lib -lanvil -o your_program

WebAssembly — browser, or any JS host

anvil-wasm-v0.8.0-rc.tar.gz — the compiled module, its glue, and a JS-facing wrapper. Module loading is async (WASM instantiation) — see the bindings guide for the one-line difference from the Node binding below.
Download
const anvil = require('./index.js');
await anvil.ready();
const doc = anvil.parse('#!aml\nfoo := 1;');
doc.get('foo').asInt(); // 1

Node.js — N-API

anvil-node-v0.8.0-rc-linux-x86_64.tar.gz — a prebuilt native addon plus its JS wrapper. Same API shape as the WebAssembly binding above (synchronous, no ready() needed). Linux x86_64 only today; not yet published to a package registry, so other platforms build from source.
Download
const anvil = require('./lib/index.js');
const doc = anvil.parse('#!aml\nfoo := 1;');
doc.get('foo').asInt(); // 1

.NET — C#

anvil-net-v0.8.0-rc-linux-x64.tar.gz — a prebuilt managed assembly (Anvil.Net.dll) built directly on Anvil Native's vtable ABI, plus the native library it links against. Linux x64 only today; not yet published to NuGet, so other platforms build from source.
Download
using var doc = AnvilDocument.Load("config.anvl");
var server = doc.FindValue("server");
server["port"].AsInt(); // 8080

Python — ctypes

anvil-py-v0.8.0-rc-linux-x64.tar.gz — a pure-ctypes binding built directly on Anvil Native's vtable ABI, plus the native library it links against. No compiled extension module. Linux x64 only today; not yet published to PyPI, so other platforms build from source.
Download
with AnvilDocument.load("config.anvl") as doc:
    server = doc.find_value("server")
    server["port"].as_int()  # 8080

Full usage guide for every binding is in Docs → Bindings. This is release-candidate software — the format and API are stable enough to build against, but expect the surface to keep moving before a 1.0 release.