Skip to content

玉手箱 JOURNAL

The Tebako blog.

Engineering notes, release announcements, and deep dives into the world of packaging interpretive-language apps.

Latest

tebako runtimes for Windows on ARM: the ruby and python lines ship native arm64 packages

The Tebako team

SERIES · 5 PARTS

Tebako v2 architecture

The v2 design in five parts: the three-part package, the runtime as an image, composition, the host boundary, and the trust behind every release.

  1. The three-part package
  2. The runtime as an image
  3. Composition
  4. The host boundary
  5. Trust and the release chain

SERIES · 5 PARTS

Basic payloads

The hands-on path: run your first package, build a data payload, package Ruby and Rails applications, and publish to your users.

  1. Run your first package
  2. Data payloads: make one, read one
  3. Package a Ruby application
  4. Package a Rails or Sinatra application
  5. Publish to your users

SERIES · 5 PARTS

Advanced payloads

The deeper toolkit: tracing what a payload touches, jailing it, the image toolbox, native code, and a complete packaging of Metanorma.

  1. Trace: see what your payload touches
  2. Jails and profiles: decide what it may touch
  3. The image toolbox
  4. Runtimes and native code
  5. packed-mn: one download, any document

Standalone posts

tebakoreleaserubywindows

tebako v2.8.9: ruby 4.0 runtime lines, line-pinned extension slices, and the windows materialize tier

v2.8.9 has paired with the 0.16.25 runtime factory to make ruby 4.0 a first-class tebako target: one payload version can ship per interpreter line, the user picks the line with one pin, extension slices bind to the exact line they were built against, and windows runtimes whose files the OS loader must see gain the materialize boot tier.

The Tebako teamRead more →
tebakopackagingbenchmarkspython

CPython under the bench: the 3.14 interpreter is the win, and what the JIT (doesn't) buy you

The Python runtime line has received the same instruments as the Ruby line: CPython 3.13.15 and 3.14.7, plain and JIT-flavored, on synthetic kernels and on a real xml2rfc standards-document render, all through the real tebako dispatch path. The result mirrors Ruby's, with one difference: the 3.14 JIT flavor defaults on, and it still does not matter at the measured horizons.

The Tebako teamRead more →
tebakopackagingbenchmarksruby

Tebako runtimes under the bench: MRI vs TruffleRuby vs JRuby, and what the JITs actually buy you

The tebako project has measured five Ruby runtime arms through the real tebako dispatch path — MRI 3.3.12, MRI 4.0.6 with YJIT and ZJIT, TruffleRuby native and JVM, and JRuby on OpenJDK 25 — on synthetic kernels and on a real Metanorma document compile. The result is not a single fastest engine; the fastest engine depends on the shape of the process, and the packaging layer is where that choice belongs.

The Tebako teamRead more →
tebakopackagingrelease

Tracing and checking packaged apps

Every packaged application raises two questions: what it actually touches on the machine, and whether it actually works. The trace commands answer the first question, payload checks answer the second, and this post presents both with worked examples.

The Tebako teamRead more →
tebakopackagingarchitecturerelease

Tebako v2 — the hermetic portable-runtime platform

Tebako v2 has shipped. To show what its portability means in practice, a complete standards document — figures, fonts, and the Java conversion pipeline included — has been built entirely from mounted disk images, with an empty PATH and nothing on the host but tebako itself.

The Tebako teamRead more →
tebakopackagingarchitecture

Tebako is alive — the thrift-free re-architecture

The Tebako project is not dead: maintenance continues under the tamatebako organization, and the recurring build breakage has been addressed at its root by removing folly and Thrift from the stack entirely.

The Tebako teamRead more →
tebakopackagingwindows

Tebako Windows support at v0.6.0!

Tebako now officially supports Windows, including Windows 2019, Windows 2022 targets using MinGW ucrt64, at version 0.6.0 released today. Now Tebako supports packaging for most major platforms: Linux, macOS and Windows.

Maxim SamsonovRead more →
tebakopackaging

Details about Tebako patching processes

Building Ruby with minimal external dependencies is a challenging task loosely supported by the community. We faced numerous issues on this path and had to resolve them creatively.

Maxim SamsonovRead more →
tebakopackaging

Tebako packager revisited

The distribution of Ruby applications can be considered an unsolved problem. By itself, Ruby does not provide a consistent and easy method for setting up and running a running application.

Maxim SamsonovRead more →
tebakopackaging

Tebako technology and data flow

The distribution of Ruby applications can be considered an unsolved problem. By itself, Ruby does not provide a consistent and easy method for setting up and running a complex application.

Maxim SamsonovRead more →
tebakopackaging

Challenges in distributing Ruby applications

The distribution of Ruby applications can be considered an unsolved problem. By itself, Ruby does not provide a consistent and easy method for setting up and running a complex application.

Maxim SamsonovRead more →