QUESTIONS & ANSWERS
Frequently asked.
Everything you need to know about packaging Ruby applications into self-contained executables.
What is Tebako?
Tebako is an executable packager for Ruby. It bundles your Ruby application — along with the Ruby runtime, gems, and native extensions — into a single self-contained executable file. The result runs on any compatible machine without Ruby installed.
What platforms does it support?
Linux (x86_64 and ARM64), macOS (Intel and Apple Silicon), and Windows. You can build for each target using GitHub Actions runners — including the macos-13 runner for Intel macOS builds.
How does it work?
Tebako uses DwarFS, a high-compression read-only filesystem, to pack your entire application tree into a mountable image. At runtime, this image is mounted transparently and your application runs as if it were in its original directory structure. The Ruby runtime is patched and embedded directly into the executable.
Which Ruby versions are supported?
Ruby 3.1 through 3.4. You specify the version with the --Ruby flag when packaging (e.g., --Ruby=3.4).
How large are the resulting executables?
Typically 14–20 MB for a simple application. Larger apps with many gems may reach 30–50 MB. DwarFS compression keeps the footprint manageable while preserving full functionality.
Can I package web apps like Rails or Sinatra?
Yes. Tebako packages any Ruby application, including web frameworks. The entire gem dependency tree, native extensions, and assets travel inside the executable. Host-folder mounting support also allows packaging apps that need runtime access to external files.
How is Tebako different from Docker?
Docker packages applications in containers that require a Docker runtime and daemon. Tebako produces a single native executable — no runtime, no container engine, no virtualization. End users download one file and run it directly.
Is it free and open source?
Yes. Tebako is open source under the BSD-2-Clause license, maintained by Ribose and the tamatebako organization on GitHub. Contributions are welcome.
What does the name mean?
Tebako (手箱) is short for tamatebako (玉手箱) — the legendary jewel box from the Japanese folktale of Urashima Tarō. Just as the box protected something precious, Tebako protects and carries your Ruby application. Read the full story on our About page.