home.social

#varlink — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #varlink, aggregated by home.social.

fetched live
  1. »For me, it's not the systemd dependency in their proposed #Flatpak 2.0 that I don't like, but their desire to move everything (including the XDG portals they spent so much time getting libraries and applications to adopt) over from D-Bus to #Varlink.

    My honest reaction was "Are these people from the #GNOME project? …because this feels like a rehash of their approach to CSD support in applications not linked against libgtk".«

    phoronix.com/forums/forum/phor

  2. A new stack for GNOME system components | Sebastian Wick @ GUADEC 2026
    tube.kockatoo.org/w/52EiAzdyZ1

    This talk explores a possible future in which critical features that GLib, Gio and similar libraries provide to system components have been be moved into small, socket-activated #Varlink services written in Rust.

  3. I'm really interested in #Varlink, but the fact that it’s still incompatible with #Flatpak is a deal breaker for me.

  4. 🚀 zlink 0.7 is out!

    📖 A brand new book! zlink now ships with a comprehensive tutorial covering everything from your first connection to writing services & type-safe proxies: z-galaxy.github.io/zlink/
    All book examples are compiled & run as doctests, so the docs can't silently rot. 😉

    ✨ serde-style field attributes: The Type & CustomType derives now support #[zlink(skip)] and #[zlink(flatten)], so your Rust structs no longer have to mirror the wire format 1:1.

    🏷️ Renaming all the things: rename & rename_all now work across the derives, on ReplyError variants, and there's a new rename_all_arguments for the proxy macro. Raw identifiers (r#type & friends) are handled correctly now too.

    🦺 Compile-time name validation: The macros now check the names they emit against the Varlink grammar, so invalid interface/method/type names get caught at build time instead of at runtime by your peers.

    🏗️ New crate: zlink-idl: The Varlink IDL types & parser now live in their own crate with a proper error type — usable independently of the rest of the stack.

    ➕ Additive runtime features: The tokio & smol integrations no longer conflict — enable whichever you need, or both.

    📦 crates.io/crates/zlink
    🔗 github.com/z-galaxy/zlink

    #RustLang #Varlink #IPC

  5. 🔖 zlink 0.6.0 is out!

    zlink is an async Varlink IPC library for Rust. Highlights this release:

    🔐 Credential passing over unix sockets (SO_PASSCRED + PassedCredentials API).
    🔌 Listeners can signal exhaustion; Server exits cleanly when they do.
    🔎 Introspection now covers custom per-interface types + method/interface doc-comments.
    🛠️ zlink-codegen: new --rustfmt flag & generate_files() API.
    🧵 Build a unix Stream from a std UnixStream.
    🔒️ Removed the pidfd_open fallback.

    Release notes at github.com/z-galaxy/zlink/rele

    #RustLang #Varlink #IPC

  6. With our changes to Phosh's first-boot in 0.55 and the recent changes in mobile settings we can now finally go full circle on immutable images:

    • Set up the initial user via systemd-homed
    • Perform OS upgrades from the mobile settings app using systemd-sysupdate

    This  landed in Phosh's nightly images already but will hopefully also become useful for other immutable phone distros like @postmarketOS #Duranium .

    As the systemd org.freedesktop.sysupdate1 interface is bound to change to #varlink in 262 this is currently rather minimal and will be tweaked in future releases but it makes things already usable without having to resort to the command line.

    #LinuxMobile #Phosh #systemd #gtk #BengalOS

  7. While work on the varlink-http-bridge for systemd I had this idea that a lot of the tech could be used to build an #MCP for systemd via #varlink. So here it it is: github.com/mvo5/systemd-mcp - it auto-discovers systemd's varlink sockets, introspects the IDL, and exposes every method as a typed tool. On a typical system that's 50-80+ tools: units, journals, credentials, factory reset, you name it. What could possibly go wrong :) ? (requires systemd v260+)

  8. 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.

    crates.io/crates/kirmes

    Example: gitlab.com/kirmes/kirmes/-/blo

    #systemd #varlink #linux

  9. 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.

    github.com/Foxboron/attezt

    Very much a work in progress and not everything is wired up correctly. Readme also needs a bit more work.

    #TPM #Attestation #Security #security

  10. 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.

    gitlab.com/kirmes/kirmes/

    #systemd #varlink

  11. Obviously not going to push this to `main`, I love #varlink even more now after seeing it in the #systemd talk at FOSDEM. I was playing around with how I could allow other apps to do things like "start timer in Sessions" or "query timer state from Sessions", and it literally took 5 minutes to expose _every single UI element_ via a corresponding Varlink service that I could then immediately discovery and use via `varlinkctl`. Calling the Varlink methods even interacts with the UI properly 🤯

  12. 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:
    gitlab.com/cryptomilk/ai-playg

  13. 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

    gitlab.com/cryptomilk/ai-playg

    #systemd #varlink #zlink #fedora #ai #sandbox

  14. Watched @pid_eins presentation record about . I think the idea is good, except it should use some binary protocol for communication between services. RFC 8949 seems like excellent candidate. Text serialization is not necessary if human is never direct part of a pipeline. Data conversion is not slow, but not necessary between localhost- only services.

  15. I've just released version 0.0.4 or kirmes, a Rust and C API to query and enumerate users of systemd's userdb.

    This version supports the record filter options introduced to the USER_GROUP_API of systemd in version v258.

    crates.io/crates/kirmes

    #systemd #varlink #rust #c #linux

  16. 🚨 Breaking news for the two people who care about Varlink: someone made a C library! 🎉 Turns out, you can now send #JSON objects over Unix sockets—truly revolutionary stuff from the 90s! 🚀 Enjoy your riveting read on RPC protocols, because apparently, that's still a thing. 🙄
    emersion.fr/blog/2025/announci #Varlink #CLibrary #UnixSockets #RPCProtocols #90sTech #HackerNews #ngated

  17. Just rolled out the first release of zlink, a new async-first Varlink Rust crate:

    crates.io/crates/zlink
    docs.rs/zlink/latest/zlink/

    This release focuses on the client-side of things more but you can already use it to write services as well. A high-level service API is planned for the near future.

    Also provided is a codegen utility, zlink-codegen (duh!) that generates client-side proxy trait and auxiliary types for you:

    crates.io/crates/zlink-codegen

    #rustlang #zlink #varlink

  18. I've just released libkirmes 0.0.2. It is a C library and a Rust crate to access the #systemd userdb API via varlink

    This is still work in progress but already usable.

    gitlab.com/kirmes/kirmes/

    #systemd #rustlang #varlink

  19. I lied when I said #PAM authentication will come next week. Here's #WebIDAMd demonstrating password authentication against #OAuth, with a PAM module speaking via #Varlink to the daemon:

    asciinema.org/a/728726

    @signaleleven @pid_eins @jasmin

    #systemd #Linux

  20. Been working hard on the IDL & introspection APIs in zlink for almost 3 weeks now and I must say I'm very happy with the results. 🍒 on top, I made an example introspection cli that demonstrates the client side of this API:

    github.com/zeenix/zlink/blob/m

    Thanks to @codethink for sponsoring the weekdays and Meta for sponsoring the weekends. 😊

    #varlink

  21. The recording of my @fosdem talk "How I optimized zbus by 95%" is finally published:

    video.fosdem.org/2025/ub2252a/

    Unfortunately, certain portions of the recording were lost so you'll notice a few skips.

    I also discuss #varlink in the last 11 minutes (starting at time index 00:23:45).

  22. @tychotithonus it isn't!
    #systemd is highly modular and each component is loosely coupled to the others.
    You can basically mix and match as you like to - disable components you don't need/like, replace them with others - and they might either fully integrate by utilizing the #DBus / #Varlink interfaces of systemd's components or not and act on their own.

  23. “Protocol: All messages are encoded as JSON objects and terminated with a single NUL byte”

    “What could possibly go wrong?”

    https://varlink.org/

    https://alecmuffett.com/article/110436

    #systemd #varlink