v1.3.2 is production-ready. Every subsystem passes all four sanitizers (ASan, UBSan, TSan, LSan), all 23 CI tools report PASS, every public function is documented, builds are byte-identical under
SOURCE_DATE_EPOCH, and a complete HTTP/1.1 web server with PHP-FPM integration ships indemos/gold_ws/.See
docs/CHANGELOG.mdfor the full v1.3.2 release notes andROADMAP.mdfor what comes next.
OLSRT (OverLab Streams Runtime) is a universal runtime engine — designed to power any language. If your language can talk to C, it can build on OLSRT.
Unlike a single-purpose library, OLSRT provides a full concurrency substrate: actors with process isolation, an event loop with timers and I/O, promises and futures with continuations, channels with backpressure, green threads with work stealing, reactive/stream abstractions, supervisor trees, and a dataflow graph engine — all in portable C11.
| Attribute | Value |
|---|---|
| Current release | v1.3.2 (Production Ready) |
| Previous stable | v1.3.1 (Wave 1 Stabilization) |
| Regression tests | 28 assertions, 0 failures |
| Sanitizers | ASan ✅ · UBSan ✅ · TSan ✅ · LSan ✅ |
| Doxygen coverage | 281 / 281 public functions |
| CI tools | 23 / 23 PASS |
| Build matrix | 36 / 36 PASS (cc · gcc · clang × gnu99–gnu23 × -O0/-O2/-Os) |
| Reproducible builds | byte-identical |
| Demos | 15 (7 baseline + 6 combined + gold_ws + variants) |
| Next milestone | v1.3.3 (Dataflow Cleanup) |
OLSRT v1.3.2 is ready for production use on Linux and BSD. Every subsystem has been verified against the failure modes that matter — memory leaks, undefined behaviour, data races, integer overflow, misaligned access, and concurrent ownership bugs — and every public function is covered by a structural and Doxygen build check.
| Platform | Status |
|---|---|
| 🐧 Linux x86_64 | ✅ Production-ready |
| 🐧 Linux aarch64 | |
| 🐚 FreeBSD / OpenBSD | ✅ Reported |
| 🪟 Windows | 🔜 v2.0 (IOCP backend) |
| 🍎 macOS | 🔜 v2.0 (kqueue native) |
Every release is verified by the ci/ toolsuite. For v1.3.2:
$ python3 ci/run_all.py --keep-going
23 tool(s) run, 0 failure(s)
Full breakdown:
| Tool | Verdict |
|---|---|
version_check |
PASS — versions agree across the tree |
warnings_check |
PASS — 7 ≤ budget 10 |
format_check |
PASS — clang-format clean |
lint_check |
PASS — cppcheck findings reported |
spelling_check |
SKIP — no spell checkers installed |
license_check |
PASS — LICENSE present |
secrets_check |
SKIP — no scanners installed |
doxygen_check |
PASS — 281 / 281 |
header_check |
PASS — 64 / 64 self-contained |
build_check |
PASS — shared library |
cmake_check |
PASS — configure / build / install |
install_check |
SKIP — Makefile has no install target |
verify |
PASS — ASan + TSan |
sanitizer_matrix |
PASS — ASan + LSan + UBSan + TSan |
valgrind_check |
PASS — informational on this branch |
coverage_check |
PASS — 21.7 % line coverage |
static_analysis |
PASS — informational findings reported |
security_scan |
SKIP — no scanners installed |
fuzz_check |
SKIP — no fuzz targets yet |
flaky_check |
PASS — 5 runs, no variance |
commit_check |
PASS — Conventional Commits |
build_matrix |
PASS — 36 / 36 |
reproducible_check |
PASS — byte-identical |
Every tool changes its working directory to the repository root, detects its optional external binaries at runtime, and skips cleanly when a dependency is not installed. No pip packages are required.
- ⚡ Concurrency — Actors, Async/Await, Coroutines, Green Threads
- 🔒 Synchronization — Locks, Mutexes, Semaphores, Supervisors
- 🔄 Reactive/Dataflow — Streams, backpressure, operator composition
- ⏱️ Scheduling/I/O — Event Loop, Poller (epoll/kqueue/select), Deadlines
- 🌊 Composability — Channels, Futures, Promises, Parallel pools
- 💥 Made by OverLab Group — HCR (Hot-Coding References) and ORoutines (OLSRT Coroutines) are planned for v1.3.4 and v1.3.6
Minimal. Hackable. Ruthless.
- A C11 compiler (GCC ≥ 9 or Clang ≥ 10 recommended)
makeorcmake≥ 3.12- On Linux:
libnuma-dev(optional — NUMA support compiles out if missing) libpthread,librt,libdl(standard)
git clone --depth 1 https://github.com/OverLab-Group/OLSRT.git
cd OLSRT
make linux # build for Linux x86_64
make TARGET=linux ARCH=aarch64 # cross-build for aarch64
make clean # clean current target
make help # show all targets
Output: bin/<platform>/<arch>/libolsrt.so.
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . -j
python3 ci/run_all.py --keep-going
Expected: 0 failure(s).
Fifteen self-contained programs. Build them all with:
cd demos
make
| # | Binary | Shows |
|---|---|---|
| 01 | 01_hello_actor |
Actor, ask/reply, promises, automatic scheduler |
| 02 | 02_channel |
1,000,000 messages through a bounded channel |
| 03 | 03_parallel |
4-worker pool, 100 tasks |
| 04 | 04_timers |
Event loop, one-shot + periodic timers |
| 05 | 05_promise |
Promise states, .then() continuations |
| 06 | 06_dataflow |
Graph: source → doubler → sink |
| 07 | 07_http_server |
Minimal TCP HTTP server |
| # | Binary | Combines |
|---|---|---|
| 08 | 08_coroutines |
Cooperative producer / consumer |
| 09 | 09_supervisor |
Supervision tree with restart strategies |
| 10 | 10_reactive |
Subject + operators (map / filter / take) |
| 11 | 11_streams |
Stream operators with backpressure |
| 12 | 12_semaphores |
Counting semaphore across workers |
| 13 | 13_actor_supervisor |
Actors behind a supervisor |
| 14 | 14_actor_channel |
Channel-driven actor pipeline |
| 15 | 15_reactive_loop |
Event loop feeding a subject |
| 16 | 16_full_stack |
HTTP → actor → promise → channel |
| Path | Shows |
|---|---|
gold_ws/ |
Full HTTP/1.1 server with actor-per-request, TCP, promises, and PHP-FPM integration |
demos/gold_ws/ is not a toy. It is a working web server that:
- listens on
0.0.0.0:8080 - accepts HTTP/1.1 connections
- spawns a dedicated actor per request (not per connection)
- parses the request in the actor
- serves static files from
demos/gold_ws/public/ - forwards
.phprequests to PHP-FPM onlocalhost:9000over the FastCGI protocol - returns the response and closes the connection
Its bundled index.php renders a real landing page, so the server
can be pointed at by a browser and works.
Build and run:
cd demos/gold_ws
make
./gold_ws
# then browse http://localhost:8080/
See demos/gold_ws/README.md for setup, including how to start
PHP-FPM.
| Version | Codename | Highlights | Status |
|---|---|---|---|
| v0.1 | Initialize Core | First spark | ✅ |
| v1.0 | Atom | First public release | ✅ |
| v1.2 | Atom (stable) | Full Linux/BSD support | ✅ |
| v1.3.0 | Atom (v1.3) | Actors, Supervisors, Coroutines | ✅ |
| v1.3.1 | Wave 1 Stabilization | 11 fixes, 22 tests | ✅ |
| v1.3.2 | Wave 2 — Production Ready | 23/23 CI PASS · all sanitizers clean · 100 % Doxygen | CURRENT |
| v1.3.3 | Dataflow Cleanup | Edge inboxes · atomic typing · 0 warnings | 🔜 Next |
| v1.3.4 | ORoutines | Goroutine-like API + HCR | 🔜 |
| v1.3.5 | Supervisor 2.0 | Hierarchical supervision | 🔜 |
| v1.3.6 | NWP MVP | Non-Waiting Paradigm integration | 🔜 |
| v1.3.7 | Release Polish | Benchmarks, SDK, Docker | 🔜 |
| v2.0 | Apollo | IOCP + kqueue + ~66 network protocols | 🔮 |
| v3.0 | Nova | Virtualization support | 🔮 |
| v4.0–v12.0 | Core → Wave | Utilities, compiler, OS support | 🔮 |
See ROADMAP.md for exhaustive details.
- API reference —
docs/index.html(interactive) - Doxygen —
doxygen Doxyfile→docu/html/ - Sphinx —
cd source && sphinx-build -b html . ../docs/sphinx - Roadmap —
ROADMAP.md - Changelog —
docs/CHANGELOG.md - Demo guide —
demos/README.md
We're not a corporate army. We're a crew of builders, breakers, and dreamers.
Before opening a PR:
- Read
ROADMAP.mdto see where the project is heading. - Run
python3 ci/run_all.py --keep-goinglocally — every tool must report0 failure(s). - Format code to match
.clang-format. - Update
docs/CHANGELOG.mdunder an "Unreleased" section. - Sign off your commits with
git commit -s.
Pull requests that break the sanitizer pass will not be merged.
Apache 2.0 — free to use, remix, and share.
See LICENSE.
Current milestone: v1.3.2 — Wave 2: Production Ready
By OverLab Group™
