Building from source - history
What the build used to do, kept for whoever wants it. How to build today is in Building from source and the details. Newest first.
Before 2026-10-02 - the builtin server's loops only did I/O
Before the coroutines (doc/history/coroutines.md), the description of builtin read:
builtinselects corHttp, a sibling repo: an HTTP/1.1 server on edge-triggered epoll loops, depending on nothing but corAlloc and libc. Requests still run on corRest's worker pool — the loops only do I/O — and the wire format it emits is byte-for-byte the one libmicrohttpd produced, because several hundred functional tests compare captured responses line by line.It runs several loops sharing one port, each with its own
accept()on its ownSO_REUSEPORTsocket and its own work queue, so the kernel spreads incoming connections across them and no loop hands work to another.
With a request running on the loop that read it, the kernel's split of the connections became the
split of the work, and uneven; one accepting loop (corHttpAcceptShare) replaced it
(doc/history/coroutines.md § 9.1).
MQTT notifications move to a plugin
The same held for the optional runtime deps. MQTT notifications were ~2 KB of
broker code against a libmosquitto that every build linked and every process
mapped, whether or not a single MQTT notification was ever sent. They are now
the mqtt.so bridge plugin: a broker started without --bridges mqtt never
maps libmosquitto.