0.01
The project is in a healthy, maintained state
Tebako (https://github.com/tamatebako/tebako) is an executable packager. tebako-runtime gem implements adapters for Ruby gems that shall be aware that they run in tebako environment.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 4.0
~> 1.15
~> 1.79
~> 1.54
~> 3.2
~> 1.52
~> 0.0.3
~> 2.4
 Project Readme

Tebako-runtime

A helper Gem for tebako image packager

Test and release Test coverage

Tebako is an executable packager. It packages a set of files into a DwarFS file system for read-only purposes.

After packaging the file system into an image, Tebako produces a single executable binary that allows the user to run a selected file from the packaged filesystem.

Tebako image is essentially a patched Ruby with embedded filesystem as shown in the diagram.

Tebako architecture

Inside tebako image there are Ruby gems that can access native extensions. If a gem loads native extension using rubygem features this call is intercepted, a copy extension shared object is placed to host temporary folder, all further calls to extension are routed to the copy of extension (Item 2 on the diagram).

Gems and extensions can reference other libraries, executable and data files using native system calls (Items 5, 6). Tebako cannot intercept such calls and route them correctly to memory filesystem. Tebako shall offload required file from memfs to temporary folder and reroute system calls as needed.

tebako-runtime (this Gem) provides support for known Gems that use system calls to access executable or data files.

Additional features

In addition to gem support tebako-runtime provides a set of utilities to help with tebako image creation: