b12n-oss

Burin's Open Source Software

Where Burin Choomnuan publishes open source. Mostly Clojure and ClojureScript, with a run of Jolt work alongside it. Libraries and tools built for real use first, then written up properly.

b12n is a numeronym for burinchoomnuan: the first letter, the twelve in between, then the last. The same trick as i18n and k8s.

Projects

mcp-tkx

Clojure and ClojureScript library for building Model Context Protocol clients and servers. Five protocol revisions, dual-era sessions, and it runs on the JVM, Node and Babashka.

Public

raylib-jnk

212 of raylib's 217 official examples ported to jank, a native Clojure dialect compiled to native code via C++/LLVM, calling raylib directly through jank's C++ interop.

Public

raygui-jnk

24 raygui examples in jank, with raygui built as an ordinary jank package alongside raylib-jnk's C++/LLVM interop.

Public

raylib-clj

113 raylib examples in JVM Clojure, calling libraylib directly over coffi and JDK 22+'s Panama Foreign Function & Memory API. No wrapper library, no codegen.

Public

raylib-pacman

One Pac-Man written four times, once per Clojure-family runtime: babashka, JVM Clojure, jank and jolt. Nothing is shared between the four, so what each FFI costs you is there to read side by side.

Pac-Man running under Jolt Public

lisp-games

Small graphical programs across the same four runtimes, one directory per game and one per runtime. helitorus reports compute and draw milliseconds separately, so the comparison is measured rather than asserted. None of the games are ours, and every port names whose work it started from.

helitorus running under Jolt Public

lambda-mvp-jlt

A shareable AWS Lambda custom runtime in Jolt (native Clojure on Chez Scheme), with a jolt bench tool for reproducing a cold-vs-warm boot-time comparison against your own AWS account.

Public

lambda-mvp-jnk

The same custom-runtime MVP in jank, native Clojure compiled to native code via C++/Clang/LLVM, deployed as a container image, with a bb bench tool for the same cold-vs-warm comparison.

Public

lambda-mvp-cljs

The third sibling: an AWS Lambda demo handler in ClojureScript on AWS's managed nodejs24.x runtime, completing a real cold/warm boot-time comparison across all three languages.

Public

lambda-mvp-rst

AWS Lambda custom runtime in Jolt (native Clojure on Chez Scheme), whose handler builds its JSON response with real Rust via jolt-diplomat, a Diplomat-based FFI bridge, instead of hand-assembling a string. Verified end to end against real Lambda infrastructure.

Public

lambda-mvp-bb

The fifth sibling: an AWS Lambda custom runtime in Babashka, via blambda. Nothing is compiled ahead of time -- the handler is interpreted at cold start by Babashka's own SCI interpreter, and it's the only one of the five shipped as a Lambda Layer.

Public

Documentation

mcp-tkx guide

Fourteen pages: getting started, architecture, the 2026-07-28 stateless revision, kebab-case key handling, and a containerised REPL smoke test.

Live

raylib-jnk docs

Guide and full demo gallery for the 212-example jank raylib suite.

Live

raygui-jnk docs

Guide and demo gallery for the 24-example jank raygui suite.

Live

raylib-clj docs

Guide and full demo gallery for the 113-example JVM Clojure raylib suite.

Live

raylib-pacman docs

Twelve pages on what four FFIs will and will not carry across the C boundary, and an animated demo of each runtime playing the same game.

Live

lisp-games docs

Nine pages on two games across four runtimes, including how to read the timings and where two of the early numbers turned out to be wrong.

Live

lambda-mvp-jlt guide

The Runtime API loop, the AL2023 build, and how to reproduce the cold vs. warm boot-time comparison on your own AWS account.

Live

lambda-mvp-jnk guide

The jank sibling's own runtime loop, container build, and bench tool.

Live

lambda-mvp-cljs guide

The ClojureScript/nodejs24.x sibling, and the three-way language comparison it completes.

Live

lambda-mvp-rst guide

Getting started, architecture, the Rust JSON builder via jolt-diplomat, the Runtime API loop, the AL2023 build, and cold vs. warm boot time.

Live

lambda-mvp-bb guide

Why this sibling ships as a Lambda Layer, the Runtime API loop via blambda, and the bb bench baseline completing the five-way cold vs. warm boot-time comparison.

Live

Elsewhere

github.com/burinc

The personal account, and the longer story of what all of this is for.

b12n.net

Writing, notes and the things that did not fit in a repository.