8 releases
new 0.1.7 | Sep 6, 2024 |
---|---|
0.1.6 | Aug 17, 2024 |
0.1.4 | Jul 29, 2024 |
#390 in Unix APIs
226 downloads per month
575KB
13K
SLoC
Konfigkoll
Documentation [ lib.rs ] [ crates.io ] [ AUR ]
Konfigkoll is a work in progress cross distro configuration manager. It aims to solve the problem "I have too many computers and want to keep the system configs in sync", rather than "I am a sysadmin and want to manage a fleet". As such it is a personal system configuration manager.
The design of konfigkoll is heavily inspired by the excellent Aconfmgr, but with a few key differences:
- Aconfmgr is Arch Linux specific, konfigkoll aims to be cross distro (currently Arch Linux + work in progress support for Debian & derivatives).
- Aconfmgr is written in Bash, and is rather slow. Konfigkoll is written in Rust, and is much faster.
As an example, applying my personal config with aconfmgr on my system takes about 30 seconds, while konfigkoll takes about 2 seconds for the equivalent config. (This is assuming--trust-mtime
, both are significantly slowed down if checksums are verified for every file). - Aconfmgr uses bash as the configuration language, konfigkoll uses [Rune].
Please see the documentation for more information.
Installed binaries
This crate consists of two binaries:
konfigkoll
This is the main binary you will be interacting with
konfigkoll-rune
This is a helper binary for [konfigkoll] that provides Rune support (the embedded scripting language used by konfigkoll) functions such as:
- Documentation generation
- LSP language server
- Formatting of rune files
- Syntax checking
- etc
MSRV (Minimum Supported Rust Version) policy
The MSRV may be bumped as needed. It is guaranteed that this program will at least build on the current stable Rust release. An MSRV change is not considered a breaking change and as such may change even in a patch version.
What does the name mean?
konfigkoll is a Swedish for "config check/tracking", though the translation to English isn't perfect ("ha koll på" means "keep an eye on" for example). Some nuance is lost in the translation!
Dependencies
~39–74MB
~1.5M SLoC