Limits
The edge build is the Soli interpreter and the request pipeline, without the
server around them. What needs a socket, a thread, a subprocess or a disk stays with
soli serve.
Runs on the edge
Routes, controllers, before_action, middleware
Views, layouts, partials, components, view helpers
Query strings, URL-encoded forms, JSON bodies and responses
I18n from config/locales
SoliDB models over HTTPS: find, where, create, update…
The HTTP class, over the Worker's fetch
Static files from public/, served by Cloudflare
Stays with soli serve
WebSockets, LiveView, server-sent events and streamed bodies (answered with a 501)
Background jobs, cron, mailers that send
Multipart uploads and anything that writes files
PostgreSQL, MySQL, SQLite and the native SoliDB driver
--dev: hot reload, the dev bar, the REPL
PDF, Office documents, lossy WebP encoding, subprocesses
Worth knowing
One request at a time per isolate. A request suspended on a query keeps
its isolate; Cloudflare spreads load over more isolates.
A Rust panic ends the isolate , where soli serve would answer
a 500 and carry on. The next request boots a fresh one.
Size. About 3 MB compressed: inside the paid plan's limit, at the edge of
the free one.
Sessions. The in-memory store lives as long as an isolate; use the
cookie driver with SOLI_SESSION_SECRET.
Rendered by Soli 2.19.0
on cloudflare-workers ,
datacenter CMH
(visitor in US), at 2026-10-09T16:21:49Z.
Soli · this site is examples/cloudflare-worker in the Soli repository.