Hey Dev Community!
A while back, I was sitting on my old Windows 7 machine, trying to build a PHP extension. I wanted to bring modern async I/O, WebSocket support, and an event loop to PHP — something like what Node.js has, but for PHP. The problem? phpize requires MSVC, and on Windows 7 with MinGW, I couldn't make it work. No matter what I tried, MSVC just wouldn't install.
So I sat there, frustrated, staring at my screen. And then a thought hit me:
"C can talk to any language. So why am I limiting myself to just one?"
That question changed everything. Instead of building a PHP extension, I started building something much bigger: a language-agnostic runtime that any language could talk to. A runtime that would give every language access to async I/O, WebSocket, event loops, and more.
That was the birth of OLSRT.
From 0.1 to v1.2 (Atom)
The first version (0.1) was a mess. Just a single src folder, no header files, and barely any structure. But it worked — enough to prove the concept.
Then I rewrote everything from scratch. Today, OLSRT is at v1.2 (Atom) , and it's production-ready. Here's what's in it right now:
✅ What OLSRT v1.2 Offers Today
1. Actor Model with Full Process Isolation
Each actor runs in its own isolated process with a private memory arena. If one actor crashes, the rest keep running — just like Erlang/OTP, but in C. The implementation includes:
- Lock‑free mailboxes with zero‑copy message passing
- Supervisors with restart strategies (permanent, transient, temporary)
- Process linking and monitoring (Erlang‑style)
2. Green Threads (Not Just Coroutines)
OLSRT has a full green thread implementation with:
- Work stealing across multiple CPU cores
- NUMA‑aware memory allocation
- SIMD‑accelerated memory operations (memcpy, memset, memcmp)
- Guard pages to detect stack overflows
- Context switching in assembly for x86_64, ARM64, ARM, and RISC‑V
3. High‑Performance Memory Management
- Arena‑based memory allocators (2MB default, expandable)
- Zero‑copy IPC between processes
- Lock‑free data structures for hot paths
- Cache‑line padding to prevent false sharing
4. Async I/O and Event Loop
- Cross‑platform event loop with epoll (Linux), kqueue (macOS/BSD), and select (fallback)
- Timer support with deadlines
- I/O event registration with callbacks
5. Channels and Streams
- Thread‑safe FIFO channels with bounded/unbounded capacity
- Reactive streams with operators (map, filter, take, merge, debounce)
- Backpressure support with demand‑based flow control
6. Promises and Futures
- Thread‑safe promise/future implementation
- Continuations (
.then()) - Integration with the event loop for waking
7. Synchronization Primitives
- Mutexes, condition variables, read‑write locks, semaphores
- All implemented natively on Windows, Linux, macOS, and BSD
8. Networking (TCP/UDP)
- Non‑blocking TCP and UDP sockets
- Full integration with the event loop
- Promise‑based async API (send/recv/accept/connect)
🚧 What's Coming in v1.3 (In Development Now)
Based on our latest commits (as of February 2026), v1.3 will include:
- Hot‑Coding References (HCR) – Never pause the main with very lightweight branches.
- OLSRT Coroutines (ORoutines) – Even lighter‑weight concurrency
- Fully documented runtime
- Optimized build systems (CMake and Makefile improvements)
Why OLSRT Exists (The Philosophy)
I didn't set out to build a universal runtime. I just wanted to make PHP async. But along the way, I realized something:
The future of software is polyglot. We use PHP for the web, Python for data, Rust for systems, and JavaScript for the frontend. But today, each language has its own runtime, its own concurrency model, and its own set of limitations. OLSRT is an attempt to unify them — to give every language access to the same powerful primitives: actors, green threads, zero‑copy IPC, and fault‑tolerant supervisors.
Where We Stand Today
OLSRT v1.2 is stable and production‑ready on Linux and BSD (Windows support is coming in v1.3). It has:
- 118 commits
- Full Doxygen documentation (for v1.0, v1.2 docs are in progress)
- A growing set of bindings in the works (PHP, JavaScript, Python, Rust, Go, .NET, Dart, Java, Kotlin, D, Elixir, Erlang, Ruby…)
- A small but passionate team of 1 core developer ( And it's me :) )
And yes, right now we have exactly 3 GitHub stars. That's it.
Why I'm Writing This
Because OLSRT needs you. Not just as a user, but as a contributor.
This project has the potential to change how we build software — but it can't do that alone. We need:
- Developers to star the repo (it sounds small, but it makes a huge difference in visibility)
- People to open issues (every bug report, every feature request, every question)
- Contributors to send pull requests — even if it's just fixing a typo in the docs
- Community members to spread the word (share this post, tweet about OLSRT, talk about it at meetups)
How You Can Help Right Now
- Visit the repository: github.com/OverLab-Group/OLSRT
- Star it. One click. It takes 2 seconds.
- Read the code. It's well‑documented (I promise).
- Open an issue. Found a bug? Have an idea? Let me know.
- Submit a PR. Even a tiny one counts. Fix a typo, improve a comment, add a test.
- Tell a friend. Share this post on Twitter, LinkedIn, or your local dev community.
The Road Ahead
We have a roadmap to v12. But we won't get there alone. OLSRT is open source, and it belongs to the community. With your help, it can become the universal runtime that powers the next generation of software — from real‑time chat servers to telecom infrastructure to embedded IoT devices.
It all started on a Windows 7 machine with a broken MSVC install. Now it's up to you to help it grow.
Top comments (0)