Write the lambda. Run on the metal.
A complete R7RS-small Scheme implemented in Zig. Hot functions JIT-compile to native AArch64 and x86_64 — so the source stays elegant and the machine stays busy.
curl -fsSL https://kaappi-lang.org/install.sh | bash
Everything R7RS asks for, and the parts that make it fun.
Every identifier from Appendix A is implemented — then continuations, a JIT, and an FFI on top.
Complete R7RS-small
600+ built-in procedures, 33 syntax forms, all 14 standard libraries — every identifier from Appendix A.
First-class continuations
Multi-shot call/cc via stack copying, plus dynamic-wind and call/ec for escapes.
JIT to native code
Hot functions compile to AArch64 — inline fixnum arithmetic, comparisons, car/cdr, and cons.
69 SRFIs
Lists, strings, hash tables, vectors, threads, formatting, char-sets — 8 built in, 43 portable.
C FFI with callbacks
Call shared libraries from Scheme, and pass Scheme procedures where C expects a function pointer.
OS threads & fibers
Real OS threads via SRFI-18, plus green fibers with channels. Pre-fork and threaded HTTP servers.
The JIT earns its keep.
Pure recursion, fixnum arithmetic. Kaappi outpaces Chibi and runs neck-and-neck with Gauche — with native compilation still closing the gap on the AOT compilers. See all benchmarks →
Small forms, full language.
Run these yourself in the browser playground — no install needed.
(define (fib n) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2))))) (fib 30) ;=> 832040
(define-syntax my-when (syntax-rules () ((_ test body ...) (if test (begin body ...))))) (my-when #t (display "hello"))
(define-library (math) (export square cube) (import (scheme base)) (begin (define (square x) (* x x)) (define (cube x) (* x x x))))
Documentation
User Guide
Installation, REPL features, the language tutorial, and the command-line reference.
Start here →Browser Playground
Edit and run Scheme in the browser. WASM-powered, no install required.
Open →Interactive Tour
12 guided lessons from expressions to macros, with live code and challenges.
Start →Procedure Reference
All 600+ built-in procedures with examples, organized by domain.
Browse →Library Reference
The 69 SRFIs, the standard libraries, and how to write your own.
Browse →Ecosystem
Web framework, Redis, PostgreSQL, HTTP/HTTPS, JSON — and the thottam package manager.
Explore →