In that last April, I made journald-send, to serve as replacement for systemd-python, for folks who want to write logs to journald, using native protocol.
It is a partial replacement, because it only offers the "write" part, not "read". That's enough because most of applications which want to talk with journald just need to "write". I made journald-send out of the frustration that systemd-python development seems to be stuck, the last release was on the beginning of 2023, when it is 2026 now, and the compatibility with Python 3.14 is uncertain. Even after I contributed some code to modernize the Python project structure, the core developers still seems to not rush to make a release.
I wrote [jounald-send] in Rust, aiming for Python 3.14 free-threaded (No GIL) mode. Because I only need to support "write" operation, I decide not to depend on the C libsystemd, and go further by using Rust pure libraries (rustix and memfd) to talk with Linux API. I learnt from tracing-journald for how to prepare data for journald protocol and which steps to do with the sockets. The difference is that tracing-journald is using libc and I use rustix, memfd.
After finishing journald-send, I updated my other libraries chameleon-log, structlog-journald to use journald-send under the hood. chameleon-log is for integrating logbook and structlog-journald is for integrating with structlog.
While journald-send is the "sink" part, logbook and structlog is the "source" part.