Psyclone AIOS 2.1.1: native macOS, first-class Python, ~2x faster, and 41 bugs squashed

We’re excited to release Psyclone AIOS 2.1.1 — the most significant update to Psyclone since the 2.0 line. If you build real-time, distributed, publish/subscribe systems, this release makes Psyclone faster, more portable, and far easier to drive from the language you already use. Here’s what’s new since our last release (2.0.3).
Psyclone now runs natively on macOS 🍎
Psyclone and its underlying CMSDK library are now first-class citizens on macOS — Apple Silicon and Intel — right alongside Linux and Windows. Every test suite passes on all three 64-bit platforms.
Getting there meant going deep. macOS doesn’t provide several of the POSIX timing and threading primitives Psyclone depended on, and emulating them surfaced some genuinely nasty bugs — a thread-liveness check that corrupted the heap during shutdown, timeout primitives that silently turned bounded waits into indefinite hangs, and CPU accounting that over-reported by four orders of magnitude. All fixed, with real per-thread CPU measurement now implemented through the native Mach APIs. The distribution and code-signing tooling runs natively on macOS too, so building Psyclone on a Mac is now a first-class path.
Python is now a first-class citizen 🐍
Psyclone’s full public API is now exposed to Python 3, shipped as a first-party component of every distribution — source and binary, on all three platforms. That means you can write a Psyclone module or client entirely in Python: send and receive messages, define subscriptions and the new grouped-join triggers, manage spaces and timing, and drive the external-process lifecycle — no C++ required. The bindings are regenerated cleanly per-platform so the types always match the native ABI. (Python 2 has been retired.)
Roughly twice the throughput ⚡
We went hunting in the hot messaging paths and roughly doubled throughput while cutting latency:
- TCP: ~42k → ~90k messages/sec, latency 23.8µs → ~11µs
- UDP: ~107k → ~155k messages/sec, latency 9.3µs → ~6µs
Under the hood: we removed a 36KB memory copy that ran on every message, eliminated redundant per-message socket syscalls, and cut per-message heap allocations out of the send, receive and routing paths. Sub-100µs messaging just got more headroom.
New platform capabilities, straight from the roadmap 🧩
- External-module lifecycle: Psyclone now auto-starts, supervises and gracefully stops external executables you declare in a spec — with crash isolation, so a crashed space is automatically restarted.
- Declarative TriggerGroup joins: a new
<triggergroup>that fires only when a group of triggers activates together — requires-all, requires-any, or a min-count threshold. “Wait until N of these things have happened” is now a first-class, declarative pattern. - A unified test & benchmark framework: per-object PASS/FAIL reporting, tail-latency percentiles (p50–p99.9), timestamped performance JSON with automatic regression comparison, and per-test process isolation. 33 tests, all green — plus a hardened self-checking system test.
- TLS hardening: real end-to-end encrypted round-trip testing, hostname verification, and custom CA support.
An open roadmap 🛣
This release ships with a complete feature-implementation audit of the platform spec — what’s implemented, what’s parsed-only, and what’s still to come, each with file-and-line evidence — plus a prioritised roadmap. We want it to be easy to see exactly where Psyclone stands and where it’s heading.
41 bugs fixed 🐛
All told, 41 fixes landed in this release (19 in Psyclone, 22 in CMSDK): heap corruption on shutdown, routing races, mutex leaks, memory-arena bounds errors, a dangling-pointer read, a 100%-CPU busy-loop, ARM64-Linux (Raspberry Pi 5) build detection, and a string of intermittent teardown hangs on macOS and Windows. This is a materially more robust Psyclone.
Get it
Psyclone 2.1.1 is available now for 64-bit Linux, macOS and Windows, as both source and pre-built binary distributions — each binary bundle now including the Python 3 module out of the box. Psyclone is LGPL; the underlying CMSDK library is BSD. Grab it from the Download page.
👉 psyclone.cmlabs.com · cmsdk.cmlabs.com
Psyclone AIOS is a distributed, real-time publish/subscribe platform with sub-100µs messaging, built on the open-source CMSDK library, from Communicative Machines / CMLabs.
