Cameleeringsimoom

simoom documentation

simoom is an HTTP server you build into a Rust program; these guides show how to write services, add TLS, HTTP/2 and HTTP/3, and keep the build small.

simoom serves HTTP/1.1, HTTP/2 and HTTP/3, does its own TLS 1.3, and runs one event loop per CPU core on epoll, io_uring, IOCP or kqueue. It uses nothing outside the Rust standard library and needs no async runtime. If you have used a Rust web framework before, the main difference is this: a service is a plain function that runs on the loop thread, so it answers fast work at once and hands slow work to a pool or to your own threads.

Where to find what

Read the guides in this order the first time; after that, jump to the one you need.

you want togo to
install simoom, run a first server and learn what a service isGetting started
read requests and build responsesServices and replies
send requests to handlers by method and pathRouting
call a database or another service without blocking the serverSlow work
stream request and response bodies, push server-sent eventsStreaming and SSE
accept WebSocket connectionsWebSocket
serve HTTPS with your certificates, mutual TLS, certificate rotationTLS
turn on HTTP/2 and HTTP/3 and tune themHTTP/2 and HTTP/3
set limits, see what is refused, log requestsLimits and security
choose threads and the I/O back end, stop gracefully, read countersRuntime
make HTTP and WebSocket requests from RustThe client
pick cargo features and see what each adds to the binaryFeatures and size
drive the HTTP/1.1, HTTP/2, QUIC or TLS crates from your own I/O loopSans-io crates
give a coding agent the rules it needs to write simoom codeFor coding agents
find quick answers to common questionsFAQ

The security model, every limit with its default, and the test results are in SECURITY.md. Measured numbers and how they were taken are on the benchmarks page. The API reference is on docs.rs/simoom.

How the pages are organized

Every guide starts with a short answer under its title, then shows code you can copy. Every Rust example was compiled against simoom 0.1.0 with --features full; examples that need another feature say so. Each guide ends with common questions.

Common questions

Which version do these docs describe?

simoom 0.1.0, the first release. The API can still change before 1.0; breaking changes will be listed in the release notes.

Is there a version of these docs for coding assistants?

Yes. The site publishes llms.txt (a summary with links) and llms-full.txt (every page as plain markdown), and every HTML page has its markdown source next to it. The coding agents guide lists the rules an assistant most often gets wrong.

Where do I report a mistake in the docs?

Open an issue or a pull request on GitHub. Security problems go through a private advisory, as described in SECURITY.md.

Edit this page on GitHub