Fast. Non-Blocking. Type-Safe.
Suave is a lightweight, high-performance web server written in F#. Async from the ground up with modern optimizations for production workloads.
Why Suave?
High Performance
Async, non-blocking I/O with low-allocation hot paths. Built for throughput and steady latency under load.
Type-Safe
Leverage F#'s powerful type system. Catch errors at compile time. Domain modeling with discriminated unions and records.
Async Native
Completely non-blocking I/O throughout. Native async/await with task computation expressions. Scales to thousands of concurrent connections.
Easy to Use
Simple, composable API. Build REST APIs, WebSockets, and microservices with minimal code. No magic, just pure F#.
Production Ready
HTTPS/TLS support, keep-alive connections, HTTP compression, rate limiting, and comprehensive logging built-in.
HTTP/2 Built-in
Multiplexed binary framing with HPACK, server push and ALPN — automatic, zero-config, same WebPart for HTTP/1.1 and HTTP/2.
Cross-Platform
Runs on Linux, macOS, and Windows. .NET 8+ support. Deploy as executable or container.
Hello World - 30 Seconds
The simplest Suave application:
open Suave
open Suave.Successful
let app = OK "Hello, Suave!"
startWebServer defaultConfig app
That's it! Your web server is running on http://localhost:8080.
What Can You Build?
- REST APIs - Fast, type-safe REST backends
- Microservices - Lightweight services with minimal overhead
- Real-time Apps - WebSocket support for live features
- GraphQL Servers - Built on top of Suave's composition model
- Static File Server - Efficient static content delivery
- Embedded Web Servers - Add web capabilities to any F# application
Installation
Add Suave to your F# project via NuGet:
dotnet add package Suave
Or add to paket.dependencies:
nuget Suave