awesome-systemd

awesome-systemd

A curated list of awesome projects that provide systemd-like functionality

D-Bus

  • async-rustbus: An asynchronous
    implementation of the DBus protocol based on rustbus
  • basu: The sd-bus library, extracted from
    systemd
  • busd: A D-Bus bus (broker) implementation
    in Rust based on zbus
  • dbus-broker: A high performance and
    reliable implementation of a message bus as defined by the D-Bus specification
  • dbus-bytestream: A native
    implementation of the D-Bus wire protocol for Rust
  • dbus-native: An
    experimental crate that replaces some functions in the libdbus C library with
    similar functions written in Rust
  • dbus-pure: A pure Rust implementation
    of a D-Bus client
  • dinit-dbus: A D-Bus interface
    to dinit built upon libdinitctl
  • kdbus: A transport
    layer for the DBus IPC system, meant as replacement for the UDS (Unix Domain
    Socket) transport layer
  • librdbus: A toy project that tries
    to reimplement the widely used libdbus in rust and uses rustbus internally
  • libubox: A shared library required
    by ubus
  • libubus: A library used by many
    OpenWrt projects as a planned D-Bus replacement
  • rustbus: A library that implements
    the dbus specification for local unix sockets and enables clients to communicate
    over the dbus daemon
  • sdbus-c++: A high-level C++
    D-Bus library for Linux designed to provide expressive, easy-to-use API in
    modern C++
  • skabus: A suite of programs and
    libraries for Unix systems that aim to implement a bus
  • tangle: A standalone version of
    sd-bus/sd-event extracted from systemd
  • ubus: A micro system bus architecture
    from OpenWrt to provide system-level Inter-process Communication (IPC)
  • zbus: A Rust API for D-Bus communication

systemd-journald

  • bsyslogd: A basic/barebones syslog
    daemon
  • fail-syslogd: A syslog daemon for
    Linux and Linux-like operating systems that follows the original Linux syslogd
    specification from the man page
  • kslog: A minimalistic kernel-syslogd for
    Linux in Nim
  • procd: The OpenWrt process
    management daemon written in C that has replaced hotplug2, busybox-klogd,
    busybox-syslogd and busybox-watchdog
  • rsyslog: The rocket-fast system for log processing
  • s6-log: A reliable logging
    program with automated log rotation, similar to daemontools’ multilog, with full
    POSIX regular expression support
  • socklog: A small and secure replacement for
    syslogd
  • socklog-s6: A fork of socklog
    that uses skalibs
  • stumpless: A C logging library
    built for high performance and a rich feature set
  • sysklogd: A BSD syslog daemon with
    syslog()/syslogp() API replacement for Linux, RFC3164 + RFC5424
  • syslog: A little system logger daemon
  • syslog-ng: An enhanced log daemon,
    supporting a wide range of input and output methods: syslog, unstructured text,
    message queues, databases (SQL and NoSQL alike), and more

systemd-logind (Session Manager)

  • consolekit2: A framework for
    defining and tracking users, login sessions, and seats
  • elogind: The systemd project’s “logind”,
    extracted out to be a standalone daemon
  • greetd: A minimal and flexible
    login manager daemon that makes no assumptions about what you want to launch
  • seatd and libseat: A minimal seat
    management daemon, and a universal seat management library
  • sessiond: A daemon for systemd-based
    Linux systems that interfaces with systemd-logind to provide session management
    features to X11 window managers
  • sessionman: An implementation of
    a session manager similar to systemd-logind in Rust
  • syslogd: oasis syslog daemon
  • turnstile: A session/login
    tracker and a service-manager-agnostic way to manage per-user service managers
    for user services
  • utlogd: A login/logout user
    daemon tracker that uses the inotify API to survey the change of the user by the
    utmp file
  • utmps: A secure implementation of user
    accounting, using a daemon as the only authority to manage the utmp and wtmp
    data

systemd-resolved

  • openresolv: A resolvconf
    implementation, i.e. a resolv.conf management framework

systemd-sysusers

  • catnest: A substitution for
    systemd-sysusers
  • esysusers:
    The sysusers.d binary
  • obsysusers: A utility that parses
    and creates system users and groups, based on the file format and location
    specified in sysusers.d directories
  • opensysusers: A utility written to
    process sysusers.d files so that they can be handled on systems with or without
    systemd installed
  • sd-tools: A collection of tools
    forked from systemd that provides sysusers and tmpfiles

systemd-tmpfiles

  • etmpfiles:
    The tmpfiles.d binary
  • opentmpfiles: A utility script
    written in pure POSIX sh to parse and apply tmpfiles.d style file coming from
    systemd
  • pawprint: A substitution of
    systemd-tmpfiles
  • sd-tools: A collection of tools
    forked from systemd that provides sysusers and tmpfiles
  • tmpfilesd: A replacement for
    systemd-tmpfiles that does not require systemd and includes support for sysvinit
    style enviroments
  • tmpfiles-rs: A Rust
    implementation of tmpfiles.d
  • usertmp.sh: A script to create temp
    directories for users on systems where systemd-logind or elogind is absent

systemd-udev

  • devd-rs: A Rust library
    for listening to FreeBSD (also DragonFlyBSD) devd’s device attach-detach
    notifications
  • devpubd: A device publish daemon for
    automatic device node creation
  • eudev: A standalone dynamic
    and persistent device naming support (aka userspace devfs) daemon that runs
    independently from the init system
  • hooxlugd: oasis hooxlug daemon
  • libdemi: A device enumeration,
    monitoring and introspecting library
  • libdevattr: A
    library that provides an interface to receive event notifications related to
    device events and aims to be as compatible as possible with Linux libudev
  • libudev (Go): A Golang native
    implementation Udev library
  • libudev (Rust): A safe wrapper
    around the native libudev library
  • libudev-compat: An
    ABI-compatible libudev that does not need udevd to be running
  • libudev-devd: A libudev-compatible
    interface for devd
  • libudev-fbsd: A small udev shim
    for FreeBSD/devd
  • libudev-openbsd: An outdated fork
    of libudev-devd
  • libudev-zero: A drop-in
    replacement for libudev intended to work with any device manager
  • libxdev: An experimental native
    libudev replacement for NetBSD
  • mdev (BusyBox): A
    mini udev for busybox
  • mdev like a boss: A stash
    for notes, scripts and configs for the system running with mdev as a udev
    replacement
  • mdev (Rust): An mdev daemon workalike,
    written in pure rust
  • mdev (Toybox): Populate
    /dev directory and handle hooxlug events
  • mdevctl: A mediated device management
  • mdevd: A small daemon managing kernel
    hooxlug events, similarly to udevd, and is a drop-in replacement to mdev that
    does not fork
  • ndev: A nano sized device manager with
    mdev/sdev like syntax
  • nldev: A netlink frontend for mdev,
    replacing the over-engineered udevd
  • nlmon: Replaces udevadm for monitoring
    network devices
  • procd: The OpenWrt process
    management daemon written in C that has replaced hooxlug2, busybox-klogd,
    busybox-syslogd and busybox-watchdog
  • smdev: A mostly mdev-compatible suckless
    program to manage device nodes
  • smdev-phkr: A configured smdev
  • udev (Rust): A safe wrapper around the
    native libudev library
  • udevh-sd: A udev(7) helper script that makes
    mountpoints for (removable) devices
  • udevmod: minibase
    udev event monitor
  • uevent: A simple uevent listener
  • ueventd:
    Manages /dev, sets permissions for /sys, and handles firmware uevents
  • vdev: A portable userspace device-file
    manager for UNIX-like operating systems
  • vdev (Devuan): Devuan packaging of
    vdev

Community

Mirrors

Visit original content creator repository

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *