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 (
Download
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.
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
Download
ready() needed). Linux x86_64 only today; not yet published to a package
registry, so other platforms build from source.
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
(
Download
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.
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-
Download
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.
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.