# qsu

_qsu_ ("kazoo") is a crate for wrapping applications in service
subsystems such as
[Windows Service](https://en.wikipedia.org/wiki/Windows_service),
[systemd](https://en.wikipedia.org/wiki/Systemd) or
[launchd](https://en.wikipedia.org/wiki/Launchd).

The primary objective is to allow service subsystem integration without the
need to to get bogged down in platform-specific details.  Beyond that its goal
is to offer "batteries included" service-related utilities.


## Features

- Supports `sync` and `async` (using tokio) service applications.
- Includes service registration helpers, which can:
  - generate systemd unit files.
  - generate launchd plist files.
  - register/deregister the services on Windows.
- Includes an optional argument parser, built on clap:
  - Provides a common interface for running, installing and uninstallating
    services.
  - Allows running a service application either as a foreground process (useful
    for development) or with proper service subsystem integration (for
    production).

## Limitations

qsu is opinionated, and is specifically designed for some kind of "normal
service application".

