18 releases (7 breaking)
0.7.0 | Oct 17, 2024 |
---|---|
0.6.0 | Sep 13, 2024 |
0.5.0 | May 20, 2024 |
0.4.0 | Mar 22, 2024 |
0.0.6 | Nov 10, 2023 |
#202 in Operating systems
40 downloads per month
Used in 2 crates
155KB
3K
SLoC
qsu
The qsu ("kazoo") crate offers portable service utilities with an opinionated service wrapper runtime.
qsu's primary objective is to allow a service developer to focus on the actual service application code, without having to bother with service subsystem-specific integrations -- while at the same time allowing the service application to run as a regular foreground process, without the code needing to diverge between the two.
lib.rs
:
qsu is a set of tools for integrating a server application against a service subsystem (such as Windows Services, systemd, or launchd).
It offers a thin runtime wrapper layer with the purpose of abstracting away differences between service subsystems (and also provides the same interface when running the server application as a foreground process). More information about the wrapper runtime can be found in the [rt] module documentation.
In addition qsu offers helper functions to register/deregister an executable with the system's service subsystem. These are documented [installer] module.
And finally it offers an argument parser to offer basic service registration/deregistration and running using a consistent command line interface. These are documented in the [argp] module.
Features
Feature | Function |
---|---|
clap |
Enable clap (argument parser) integration. |
installer |
Tools for registering/deregistering services. |
rt |
Service wrapper (enabled by default). |
systemd |
systemd integration support. |
tokio |
Tokio server application type support. |
rocket |
Rocket server application type support. |
In addition there's a special wait-for-debugger
feature that is only used
on Windows. It will make the service runtime halt and wait for a debugger
to attach just before starting the Windows Service runtime. Once a
debugger has attached, it will voluntarily trigger a breakpoint.
Dependencies
~10–48MB
~705K SLoC