Suave 3.6.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Suave --version 3.6.0
                    
NuGet\Install-Package Suave -Version 3.6.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Suave" Version="3.6.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Suave" Version="3.6.0" />
                    
Directory.Packages.props
<PackageReference Include="Suave" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Suave --version 3.6.0
                    
#r "nuget: Suave, 3.6.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Suave@3.6.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Suave&version=3.6.0
                    
Install as a Cake Addin
#tool nuget:?package=Suave&version=3.6.0
                    
Install as a Cake Tool

Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (64)

Showing the top 5 NuGet packages that depend on Suave:

Package Downloads
Aardvark.Service

Aardvark is an open-source platform for visual computing, real-time graphics and visualization.

FsLab

FsLab is a combination package that supports doing data science with F#. FsLab includes literate scripting converted to HTML and PDF, and by default references Deedle (a data frame library), FSharp.Data (for data access) and XPlot (for visualization). You can optionally add any other nuget packages.

Suave.DotLiquid

Suave.DotLiquid provides Liquid templates for Suave web server.

SuaveServerWrapper

A wrapper for suave.io APIs to call from C#

Logary.Services.SuaveReporter

Logary is a high performance, multi-target logging, metric and health-check library for mono and .Net.

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on Suave:

Repository Stars
msarilar/EDEngineer
An overlay to track Elite Dangerous blueprints progress in real time
rogeralsing/Microphone
Version Downloads Last Updated
3.6.1 0 10/7/2026
3.6.0 120 10/5/2026
3.5.0 727 9/9/2026
3.4.6 5,235 8/29/2026
3.4.5 180 8/26/2026
3.4.4 3,439 7/13/2026
3.4.3 10,367 6/1/2026
3.4.2 576 5/31/2026
3.4.1 270 5/30/2026
3.4.0 503 5/18/2026
3.4.0-beta 141 5/14/2026
3.3.1 387 5/11/2026
3.3.1-beta3 135 5/6/2026
3.3.1-beta2 131 5/5/2026
3.3.1-beta1 123 5/5/2026
3.3.1-beta 132 5/4/2026
3.3.0 359 5/2/2026
3.2.3 1,863 1/16/2026
3.2.2 404 1/13/2026
3.2.1 490 1/4/2026
Loading failed

Keep-alive performance: allocations per request fall from ≈5.7 KB to ≈1.24 KB for a routed empty response. In a same-host Linux comparison against ASP.NET Core Minimal API, Suave is now ahead at 256 connections and within ≈5% at 64 (#862, #864):
the connection's request loop waits for a complete request head, then parses the request line and headers synchronously; fragmented, oversized (beyond the 8 KiB line buffer), non-HTTP/1.x and body-carrying requests continue on the streaming parser
a request whose parsing, web part and response complete synchronously allocates no `Task`; `processRequest` and `run` keep their `Task` signatures
TCP and HTTPS reads and web part executions complete through reusable per-connection completion sources instead of a `task { }` wrapper and `Async.StartImmediateAsTask` per request; web part errors are recovered there with the same semantics as `async.TryWith`
reads no longer register on the server's cancellation token individually: each connection registers once and is shut down when the server stops, which also ends a pending read
no error message allocations for absent request headers, h2c checks only for `Upgrade: h2c` requests, allocation-free `Content-Length` formatting, status line and ASCII response headers written without task state or `ToLowerInvariant`, no URL decoding of paths without escapes, and a single exact-route lookup in `Router`
New `HttpReader` members (`requestHeadReady`, `receive`, `commitReceived`, `tryReadRequestLineBuffered`, `tryReadHeadersBuffered`) used by the request loop (#862)
Request header names are matched with ordinal case-insensitive comparison; names with invalid Unicode no longer match through linguistic equivalence (#862)
Add `Globals.messageWriter` to redirect or silence Suave's own console messages (startup banner, "Stopping TCP server", websocket disconnects); the test suite uses it to avoid a Console lock deadlock with Expecto that caused intermittent hangs (#863)
Evict obsolete compressed artifacts: a recompressed resource's superseded copy is now deleted as part of the atomic cache swap, and the `_temporary_compressed_files` folder is swept - age- and count-bounded, see `Compression.cleanupFolder` - on server startup and shutdown (#655)
Cached compressed copies that have gone missing from disk are treated as a cache miss instead of failing the request
Benchmarks: a Minimal API comparison server, balanced comparison and profiling scripts, and an exact per-request allocation probe; see `benchmarks/HTTP_COMPARISON.md` (#862)