I'm happy to annouce kirmes version 0.1.0 providing an async C API now!
Kirmes is a Rust and C implementation of the IPC protocol for the systemd userdb Varlink interface. kirmes provides a safe, async Rust API talking to systemd's userdb. In addition it provides blocking and async C APIs to communicate over Varlink or just parse JSON records for users and groups.
https://crates.io/crates/kirmes
Example: https://gitlab.com/kirmes/kirmes/-/blob/main/example/async_user_record.c
So attezt now contains 3 components.
- `atteztd` which is an Attestation CA with an inventory API
- `attezt-agent` that implement device enrollment and an p11-kit agent.
- `attezt` that is the client for both the agent and the attestation ca. Modelled after step/step-ca
Everything has an #varlink APIs as well.
https://github.com/Foxboron/attezt
Very much a work in progress and not everything is wired up correctly. Readme also needs a bit more work.
I've released version 0.0.5 of kirmes. A Rust and C client library to access systemd-userdb. This version switched from tokio to smol, as I plan to provide an async C API soon. @abbra contributed support for generic types based on UserRecord and GroupRecord. This way you can parse extension your userdb varlink services provides.
I want to be convinced that there is a good reason to use \0, because the future of Linux is gonna use that heavily as a DBUS replacement thanks to varlink (https://varlink.org/). I want someone to convince me that this isn't just a protocol design mistake that will be with us for the foreseeable future now.
Here is a screenshot of ai-playground where an AI agent is running on the left in a #systemd container, but cargo is running outside of the container on the host through the gatekeeper. I use the #varlink streaming protocol to stream stdout/stderr of the process executed on the host. It was pretty easy turning on streaming using #zlink
Learn more at:
https://gitlab.com/cryptomilk/ai-playground
I've created yet another AI agent sandbox and just released 0.1.0. I did it differently than the others. It is called AI Playground.
Features:
* Lightweight containers (systemd-nspawn)
* Git worktree support
* Easy to set up and keep up to date (it is a chroot)
* Host command gatekeeper - lets you approve or deny host commands from inside the container (varlink)
* Multiple AI tools supported
* Contributions welcome