Ecosystem

Everything that consumes Amber lives outside the engine repository and reaches it through one of three seams: libamber.so, the in-process ext/ registry, or a TCP socket. Nothing below is mentioned anywhere in src/, and none of it is compiled, linked or configured by the engine's build.

Amber engine portable C99 · gcc + clang a.c b.c evaluator + VM simd.c parallel.c kernels arena.c 16 MB HFT arena ser.c -8! / -9! binary ar.c Arrow C Data Interface ext.h the extension seam libamber.so ~60 amber_* entry points ext/ registry in-process · runtime verbs amberd :5010 TCP · text json jsonc raw python-amber — NumPy · pandas · Polars amber-arrow — ArrowArrayStream · Flight amber-jupyter — one process, one heap amber-ai — local co-pilot, loopback only grafana-amber — Go backend, columnar vscode-amber — LSP, \parse only amber-tick — tickerplant · RDB · HDB

The satellites

RepositorySeamWhat it is
python-amberlibamber.so pip install amber. Zero-copy NumPy views of Amber columns, pandas and Arrow bridges, dynamic dispatch (am.gentq(10_000_000)).
amber-arrowlibamber.so ArrowArrayStream over an Amber table — batches that are windows onto one export, not slices of it. Plus amberd, the TCP query server, and an Arrow Flight daemon.
amber-jupyterpython-amber A Jupyter kernel. Amber cells and %%python cells in one process, so a column crosses as a pointer.
amber-tickstore + runtime A US-equity market simulator, a partitioned column store the engine reads natively, TAQ analytics, a live tickerplant/RDB/HDB pipeline and provisioned dashboards.
grafana-amberamberd socket Live dashboards. Bare qSQL panels, column-oriented on the wire, with time macros in both epochs.
vscode-amberamberd socket Syntax highlighting, and a standalone LSP daemon with qSQL-aware completion, idiom hovers and diagnostics that never evaluate.
amber-aiext/ registry A local, offline co-pilot that reads your live tables before it answers. One endpoint, 127.0.0.1, and it cannot hang or break the REPL.
amber-notepadWebAssembly The real C interpreter compiled to wasm32 with plain clang. A split-pane editor with Result / AST / Bytecode tabs, twelve bundled programs, fully offline.
amber-flamepython-amber / amberd A visual profiler — flamegraphs, Speedscope and Chrome tracing, built on the engine's own \trace.
The engine gained one build flag for all of it

One build flag (--shared), one export map (src/libamber.map) and one section of ext.h. Delete every satellite and ./build.sh produces byte-for-byte what it produced before.

Picking a seam

libamber.so

Same process, same heap, same address space. This is the only seam where a query result crosses as a pointer. Use it whenever the data is large and the consumer can be in-process.

python-amber · amber-arrow · amber-jupyter

ext/ registry

Compiled into the binary you already had, plugged in from a constructor. Use it when you are extending the language or the REPL — new verbs, new \-commands, editor behaviour.

amber-ai

TCP socket

A different process, possibly a different machine, definitely a different language. Results are serialised. Use it for dashboards, editors and anything that must survive the engine restarting.

grafana-amber · vscode-amber

Version compatibility

Every satellite that links the engine checks amber_abi_version() at load time and refuses politely on a mismatch, naming both numbers. The ext/-seam installer additionally checks the target's version before it copies a single file, so an install against the wrong engine fails before it touches anything.