hyper.dev
well come

🖐🏽

2026-10-28 · letloop

letloop is an async runtime for Scheme, built on Chez Scheme, the pico HTTP parser and io_uring.

Transparent async

You write ordinary Scheme. The runtime schedules I/O through io_uring underneath. There is no function coloring, no await keyword, no split between “async code” and “normal code”: a procedure that reads from a socket and one that computes a factorial share the same calling convention, the same continuation model and the same debugging tools.

Speed

On a trivial counter endpoint, single-threaded, Scheme (pico + io_uring) peaks at 448,768 req/s (64 connections) and holds a p99 of 0.843ms at 256 connections. That places second of 16 HTTP server implementations, behind only C (h2o) at 504,899 req/s and ahead of Rust (axum), Java, Bun, Deno, Go, Node.js and Python. These are micro-benchmarks: they show raw I/O throughput and nothing else.

Status

Work in progress. The scheduler is single-threaded and the error handling story is incomplete.

Read more