#json #user-group #record #systemd #varlink #user-and-group #json-parser

bin+lib kirmes

A library providing access to systemd's userdb varlink interface

3 releases

Uses new Rust 2024

new 0.0.4 Feb 6, 2026
0.0.2 Aug 13, 2025
0.0.1 Apr 2, 2025

#3 in #varlink

LGPL-2.1-or-later

395KB
8K SLoC

libkirmes

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 a C API to communicate over Varlink or just parse JSON records for users and groups.

The Varlink communication is handled by zlink.

[!WARNING] This software is alpha stage, the API still have breaking changes.

Overview

The User/Group Record Lookup API via Varlink allows applications to query user and group records from local services such as systemd-userdbd. It replaces the role of getpwnam(3) and the glibc NSS interface with a JSON-based protocol that supports extensible user/group records and streaming enumeration.

Features

  • Async Rust API (works with any async runtime, e.g. tokio)
  • Client tool to query systemd-userdbd
  • Blocking C API with support for querying and enumerating records
  • JSON parsing for user records and group records in both Rust and C

Documentation

License

LGPL-2.1-or-later

Contributing

kirmes is an open source project, feel free to use it, share with love, if you want to collaborate just contact us or create a merge request.

Dependencies

~9–16MB
~214K SLoC