Languages

kapsl ships language runtimes as signed, scanned images from the catalogue. Each language page here follows the same shape: what the catalogue publishes, a five-minute run, how the language's package provider builds an environment, the tooling that ships with the runtime, project patterns from the runnable examples in the repository, and the known limitations as they were actually hit.

The pages are written from two sources of truth: the signed catalogue itself, and the runnable examples under boks-examples/ in the repository, whose READMEs contain real transcripts — including the failures. Where a catalogue entry changed after an example was captured, the page says so.

The catalogue distinguishes published entries — resolvable by name, pullable, scanned — from declared ones: the image is listed in the signed payload but no tool is bound to it yet, so kapsl --info <name> reports unknown tool. Declared is not available; every page names its declared entries as such.

Availability as of catalogue 2026.35.22 (2026-08-25), verified against the live index:

LanguagePublished linesPublished toolsDeclared, not yet runnablePage
Python3.10.21 – 3.14.7python, pip, uv, flake8, mypy, pylint, black, bandit, pytestruff, jupyter, ipython, poetryPython
Node.js22.23.2, 24.19.0, 26.7.0node, npm, npx, yarntypescriptNode.js
Rust1.98.0rustc, cargoRust
Go1.26.7, 1.27.0go, gofmtGo
Ruby3.3.12, 3.4.10, 4.0.6rubyRuby
PHP8.2.33, 8.3.33, 8.4.24, 8.5.9phpPHP
Perl5.40.5, 5.42.3, 5.44.0perl, perldoc, prove, cpanMore languages

Lines float: the catalogue carries security updates onto them and retires old ones over time, so kapsl --info <tool> is the statement of what is live today. Pin a line with the @ form (kapsl [email protected], kapsl [email protected], kapsl [email protected]) when a build must not move.

Other languages — Elixir, Haskell, Java, Scala, R, C#, Lua, Ansible — are covered in More languages, which separates the three states: published, declared, and present in the examples but not yet in the signed catalogue.

Pages in this section

  • Python Python 3.10–3.14, pip/uv environments, the linter set, and project patterns
  • Node.js Node 22/24/26, npm and yarn environments, native addons, and the framework quickstarts
  • Rust rustc and cargo 1.98, the measured ABI pin, and the built-binary story
  • Go Go 1.26/1.27, gofmt, cross-compilation, and the toolchain-vs-binary split
  • Ruby Ruby 3.3/3.4/4.0, the gem provider, and native extensions
  • PHP PHP 8.2–8.5, the composer provider, and the vendor-directory redirect
  • More languages Perl (published), and Elixir, Haskell, Java, Scala, R, C#, Lua, Ansible: catalogue state and examples