I've been building something called Fairyfly. It's a lightweight JavaScript runtime that uses QuickJS, and the whole idea is to simplify backend development.
Fairyfly comes as a single binary. It includes a bunch of stuff right out of the box: an HTTP server, fetch, WebSockets, SQLite, Postgres, Workers, and crypto. That means you can install it and have a server running immediately, without needing a framework or a pile of dependencies.
The runtime itself is written in about 24,000 lines of Zig. I focused on keeping memory usage low and startup times fast. Plus, the code is designed so developers can actually look at it and understand how it works.
It's still pretty new, so I'd really appreciate it if you'd try it out, see what breaks, and tell me what's missing or what could be better. Your feedback will help guide where Fairyfly goes next.
AbdElMajidOuhamane / ff
A lightweight JS, backend-focused JavaScript runtime built with Zig and powered by QuickJS. Designed for fast startup, low memory, and a small readable codebase.
Fairyfly Runtime
A lightweight, backend-focused JavaScript runtime built with Zig and powered by QuickJS. Designed for fast startup, low memory and a small readable codebase.
138k req/sec · 0.66 ms p50 · 5 MB RSS on Apple silicon (8-thread wrk, 100 conn) Outperforms Node 23, Bun 1.4, and Deno 2 — and uses ~10× less memory. Reproduce:
make build, serve the hello-world handler, thenwrk -t8 -c100 -d10s http://127.0.0.1:3000/(RSS sampled viaps -o rss=); see Performance.
Contents
- Documentation
- Installation
- Why Fairyfly
- Quick start
- Example tour
- API at a glance
- Performance
- Architecture
- Building from source
- CLI reference
- Limitations vs Node / browser
- License
Documentation
The full guide set lives in docs/ — 44 pages covering everything this README summarizes.
| Section | Contents |
|---|---|
| Getting started | Introduction, installation, quickstart |
| Guides | HTTP server, fetch, WebSocket, TLS, HTTP/2, Postgres packages, modules, workers, timers, testing, bytecode, environment, deploy |
| API reference | Every global |

