tt tries to offer a valid alternative to systemd for PID 1 and service management. It uses the supervision to manage long running programs (deamons), log everything to files (no binary log interface) and provides an easy to use command line interface.
Inheriting s6-rc feature, the services must be compiled before being able to run. This is one of the biggest differences with the current service managers, which instead are based on runtime services.
tt is designed to run on both desktops and servers, and does not target embedded devices; if memory and space are constrained (e.g. you're configuring a router), then the use of s6 configured ad-hoc for that machine is recommended.
tt supports the following compilers:
<filesystem>, despite including it)
tt depends on the following libraries:
You can install them using your package manager.
To build tt run the following commands:
$ meson build $ ninja -C build
tt test suite uses catch2 header-only library. If this dependency is not found on the system, meson will download a copy to use in the local repository. To run the tt test suite, execute the following commands:
$ meson -Dtests=enabled build $ ninja -C build test
Feel free to contribute by opening a Pull Request! Have a look at Github Issues for the current development tasks.
tt follows the Google C++ Style
Guide and uses
clang-format to apply this style. If you have
clang-format installed, run
the following command to format your changes:
tt uses Github Actions for CI, running and checking the test suite; in particular, the CI runs a meson unity build with
-Werror enabled and
undefined sanitizers enabled. All Pull Requests must pass the CI before being included.
$ ninja -C build clang-format
tt development updates are posted on @danyspin97 blog.
Thanks to @pac85 for its contributions and to all the people that shared ideas for tt.
Credits also to: