About mino

mino is an embeddable Clojure-inspired Lisp runtime implemented in C. The host application links the library, creates one or more runtimes, installs capabilities, and evaluates user code through a compact C API. The language centers on immutable values and persistent collections; the embedding API is the product.

mino is Clojure-inspired today and continues to close canon gaps over time. Cooperative async runs by default, with host-granted threading when needed.

Where to go next

Inspirations

mino draws from four projects that each got something deeply right: Clojure for immutable values, persistent data structures, and a data-first programming model; Lua for proving a small, portable C implementation can be a world-class embeddable scripting language; Fennel for showing Lisp syntax and macros can layer cleanly over a minimal runtime; and Erlang/BEAM for the discipline of isolated processes communicating by message passing. Mino combines these lineages into an embeddable runtime with persistent data and capability-gated host interop.

Mino borrows from BEAM twice. The first borrowing is isolation: each mino_state owns its heap and communicates with peers via cross-state channels and values, never shared mutable references. The second is Erlang's bit syntax - binary data as a first-class type with bit-precise field access. mino's MINO_BYTES value and the bits / bits-get / let-bits surface bring the same shape to embedded scripts, where binary protocols and sensor packets are common.

Related projects