kirmes 0.0.5

A library providing access to systemd's userdb varlink interface
Documentation
# libkirmes

A Rust and C implementation of the IPC protocol for the systemd userdb
[Varlink](https://varlink.org/) 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](https://gitlab.com/z-galaxy/zlink).

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

## Overview

The [User/Group Record Lookup API via
Varlink](https://systemd.io/USER_GROUP_API/) allows applications to query user
and group records from local services such as
[systemd-userdbd](https://www.man7.org/linux/man-pages/man8/systemd-userdbd.service.8.html).
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]https://tokio.rs/)
- Client tool to query systemd-userdbd
- Blocking C API with support for querying and enumerating records
- JSON parsing for [user records]https://systemd.io/USER_RECORD/ and
  [group records]https://systemd.io/GROUP_RECORD/ in both Rust and C

## Documentation

- [JSON User Records]https://systemd.io/USER_RECORD/ -- field reference for
  user records
- [JSON Group Records]https://systemd.io/GROUP_RECORD/ -- field reference for
  group records
- [User/Group Lookup API via Varlink]https://systemd.io/USER_GROUP_API/ --
  the Varlink protocol

## License

[LGPL-2.1-or-later](LICENSE)

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