Repository navigation
Capsulith 0.2 · Native objects that travel
Capsulith 0.2 carries initialized native objects into portable Node and browser workers. Extract named ARM64 methods, declare their contracts, retain owned heap and caller memory, checkpoint at a method boundary, and continue after the first worker or process has ended. Original instructions and stable guest addresses preserve stored pointers; object layouts remain opaque.
Try the keyless Object Studio and press Run lifecycle. The real compiled LZ4 example creates a stream, compresses 65,536 bytes, saves its dictionary, releases the original input, ends its worker, restores and compresses an unseen 32,768-byte packet, then frees the heap. Its 8,459/6,795-byte outputs match independent native recordings. A fresh stream produces 8,355 bytes. These are finite byte-equivalence controls, not a performance or arbitrary-component claim.
- Python wheel: local artifact extraction and both Studios.
- Source distribution: full product, tests, reproducible native controls, images and tooling.
- Initialized LZ4 ZIP: compiled methods, actual browser-captured dictionary checkpoint, start/continue operation programs, independent Studio, Node runner, backend source/build scripts, licenses and an exact manifest. Run
node run.cjs continue.json --checkpoint checkpoint.jsonwithout the original binary or extraction package. - Object Studio ZIP: standalone guided browser proof and generic contracts/memory controls. Serve it locally over HTTP to use workers.
- SHA256SUMS.txt: checksums for all four packages.
The final source passed 43 Python and 44 Node tests on Linux Python3.10/Node20, Linux Python3.14/Node24 and macOS Python3.14/Node24, including fresh installed-wheel/source-bearing export checks. macOS independently reproduced the known native comparisons. Local and GitHub AI-assisted reviews produced real corrections for quota inheritance, method contracts, cancellation, large valid checkpoints, reference endpoints, duplicate names and incremental output bounds.
Existing schema1 function capsules remain supported. Object scope is prepared ARM64 Mach-O direct closures, integer/reference contracts and six bounded memory models. Indirect calls, writable static state, relocated static pointers, OS dependencies and arbitrary CPU/stack snapshots are unsupported. Checkpoints include retained caller bytes; inspect them before sharing. Identity digests detect changes and do not authenticate origin. Original rights, GPL runtime/backend source and BSD specimen notices are preserved. No emulator isolation or universal equivalence claim is made.
Tested head 36ac40f5fa92c380ee2c1b09b9d9f00bd579942a and merged source dc907c8cc50ecd216822d005ddcb421314c16f6b have the same Git tree. See PR #1 and release gates.