4 releases
new 0.1.1 | Mar 9, 2025 |
---|---|
0.1.0 | Feb 27, 2025 |
0.0.2 | Aug 9, 2024 |
0.0.1 | Aug 9, 2024 |
#544 in Hardware support
159 downloads per month
39KB
612 lines
Saddle
Saddle is an asynchronous Rust library designed to simplify the management of user seats in a Linux environment. It provides a Rust-native, future-based API for obtaining and releasing user sessions, opening and closing devices securely, and monitoring session state changes.
Features
- Async-first API: Built with Tokio and designed for asynchronous applications
- Session Management: Obtain, release, and monitor user sessions
- Device Access: Open and close devices securely without requiring root privileges
- VT Switching: Support for switching between virtual terminals
- Event Streams: Monitor session state changes with async streams
Supported Backends
Currently, Saddle uses the freedesktop login1
interface as its backend, which
is compatible with both systemd-logind
and elogind
systems.
Future releases will include support for seatd
IPC interface.
Examples
For a comprehensive example demonstrating how to use Saddle with libinput for handling input devices and implementing VT switching, see the VT switcher example.
License
This project is licensed under the Apache-2.0 License. For more information, please see the LICENSE file.
Dependencies
~11–21MB
~336K SLoC