Those of us who’ve spent years wrestling with Asterisk know that, underneath it all, there are more than a million lines of C that have been running for two decades. C has given us power and flexibility, but also a few scares: segfaults at three in the morning, memory leaks and the odd core dump that has cost us a good night’s sleep. So when someone says “what if we rewrote Asterisk in Rust?”, our ears perk up. Well, somebody has already given it a go: it’s called Rustisk.
The project, by Ryan Murphy, is a Rust-native PBX that closely tracks the architecture, configuration style and management interfaces we already know. The numbers are striking: ~1.16 million lines of C turned into roughly 204K lines of Rust, spread across 18 crates in a Cargo workspace. It ships its own SIP stack (goodbye pjproject), an extensions.conf-style dialplan, AMI, ARI, CDR, several channel drivers, and even a pjsip-shim compatibility layer that claims to pass 100% of pjlib’s own tests.
What’s in it for us?
Rust’s big promise is memory safety: no buffer overflows or use-after-free thanks to the ownership system. For a service exposed to the Internet receiving SIP packets from half the world, that’s pure gold. On top of that come some tasty numbers: SIP message processing 2 to 5 times faster, modern concurrency with Tokio instead of POSIX threads and manual locking, and a binary of barely ~6 MB versus the 30-50 MB of the Asterisk we all know. And, as a nice touch, 4,200+ integrated tests that run with a simple cargo test.
And the downsides?
Here’s where we come back down to earth. The author makes it crystal clear: this is NOT production ready. It may drop calls, misroute audio or behave unexpectedly. It’s an experimental research project, not a replacement. Several dialplan applications are stubs, some channel drivers are little more than a skeleton, DTLS-SRTP is half-finished, SIP over WebSocket is missing, and the voicemail storage backend isn’t complete. In other words: it’s a proof of concept and not much more, but it looks promising.
Some food for thought over a coffee
Beyond the headline, there are questions that nag at more than a few of us. How long would a rewrite like this take to reach the maturity of an Asterisk with 20 years of real-world battles behind it? Does memory safety pay off against losing the huge ecosystem of modules, AGIs and tricks we’ve accumulated? Will we see Rust inside official Asterisk (specific modules rewritten) before a full fork? And what about the codecs, which here go through optional FFI and still depend on external libraries?
Either way, it’s great to see someone daring to poke around the guts of the thing that puts food on our table. We’re not going to migrate the client’s PBX tomorrow, but as a “how far can we push this?” exercise, it’s the kind that makes you want to clone the repo and tinker for a while. If you fancy it, here it is:
Join the Sinologic community
Create your free account and join the conversations about VoIP, Asterisk, Kamailio and IP telephony.





Got something to add?
Don't hold back — we all learn from each other here.