Firefly is a tiny web framework built straight on Kestrel — responses go right to the PipeWriter. Idiomatic, composable, fast. A full app in about eight lines.
Text responses write straight to the PipeWriter — no middleware tax, no reflection. The shortest path from request to bytes.
Compose routes with |>. Pattern-match params, group and nest, drop in middleware inline. Idiomatic, declarative, no ceremony.
One package, a tiny surface area, instant startup. Learn it in an afternoon, keep it for years. Only what you need — nothing you don't.
Typed route params, task-based handlers, JSON in and out, JWT middleware, and DI — all from the same composable pipeline. Here's a real todo API.
Plaintext responses, single node, requests/sec — higher is better. Illustrative figures; swap in your own.
| Firefly | Giraffe | Saturn | Falco | Oxpecker | |
|---|---|---|---|---|---|
| Built directly on | Kestrel | ASP.NET | ASP.NET | ASP.NET | ASP.NET |
| Hello world | 8 lines | ~15 | ~12 | ~10 | ~10 |
| API style | Pipeline | Handlers | CE / DSL | Handlers | Pipeline |
| Typed params | /%i | routef | scan | manual | routef |
| Startup | Instant | Fast | Heavier | Fast | Fast |
A rough orientation, not a scorecard — every framework here is excellent. Numbers are illustrative.
“We swapped a Giraffe service over in an afternoon and shaved real latency off p99. The pipeline API just clicks if you already think in F#.”
“Eight lines and I had a JSON API with JWT auth. No magic, no reflection — I can read the whole request path. That’s rare.”
“Firefly is the first .NET framework that feels as light as the F# it’s written in. Startup is instant and the surface area fits in my head.”

One package. Eight lines. Kestrel speed. Start now and have something running before your coffee's cold.