r/Python 28d ago

Showcase Showcase Thread

Post all of your code/projects/showcases/AI slop here.

Recycles once a month.

22 Upvotes

136 comments sorted by

View all comments

1

u/DifficultZebra1553 16d ago

cykit — High-performance Cython IPC, lock-free queues, and spdlog integration

What My Project Does

I am actively developing cykit, a collection of Cython utilities for high-performance inter-process communication, in-process messaging, and unified C++/Python logging.

Key modules include:

  • cykit.ipc: Shared-memory ring-buffer IPC supporting broadcast (fan-out) messaging across SPSC, SPMC, MPSC, and MPMC topologies (with both Cython and Python APIs).
  • cykit.queue: Lock-free, in-process ring-buffer queue with broadcast (fan-out) semantics.
  • cykit.cylogger: Thin Cython wrapper around spdlog for shared logging across Python, Cython, and C++ modules.

Target Audience

This project is aimed at developers working with mixed Python/Cython/C++ codebases, high-frequency/low-latency data systems, or multi-process pipelines that need faster messaging and unified logging than Python's built-in abstractions offer.

Comparison

Unlike standard Python IPC/queuing mechanisms (like multiprocessing.Queue or queue.Queue), cykit preserves broadcast (fan-out) semantics across processes/threads, whereas standard queues deliver each message to only a single consumer worker.

Installation & Dependencies

Requires Python 3.9+. Python package dependencies include certifi and msgspec. All native C++ header dependencies (Boost, spdlog, fmtlib) are fully vendored inside the package, so no system-level build setup is required.

Bash

pip install cykit

Docs & Contributions

Full benchmark numbers and usage examples for cylogger, ipc, and queue are available in the repository README and cykit/examples/.

Documentation is still a work in progress and not fully complete yet. Contributions—especially around documentation, testing feedback, bug reports, and pull requests—are very welcome.

Dual-licensed under MIT and Apache 2.0.