Any payload
Applications, data, fonts, native tools, and runtimes themselves are all the same kind of image, differing only in what the manifest declares.
玉手箱 — TAMATEBAKO
Tebako is a packaging and loading ecosystem: it takes any runtime, any platform, and any payload, stitches them into a single file, mounts the parts at run time, and shares them across the machine. Ruby is the first runtime instance.
click to open
WHY TEBAKO
The name evokes a treasure placed in a fine box: protected, portable, and ready to be shared.
Applications, data, fonts, native tools, and runtimes themselves are all the same kind of image, differing only in what the manifest declares.
The supported triplets cover aarch64 and x86_64 macOS, gnu and musl Linux, and Windows UCRT. Each target receives one press, and pure-language payloads can ship as universal.
Payload images mount in-process through the virtual filesystem. The runtime downloads once into a machine-wide cache, and every package on the machine shares it.
QUICK START
# Install the tebako CLI — five small binaries, no daemon
$ brew install tamatebako/tap/tebako
# Press your app into a single package
$ tebako press -r . -e app.rb -o my-app -R 3.4
# Run it — the runtime resolves once, then mounts
$ ./my-app
→ Hello from your packaged Ruby app!The supported Ruby range is 3.1 through 4.0 today, and the loader neither knows nor cares what language it starts. Read the Basic payloads tutorial for the guided walkthrough, or see the full documentation.
For its users, an install ends at the download of one file.