Config: Layered configuration for Rust applications

config-rs is a modern configuration system for Rust applications.

The general idea is to create a configuration library generic enough that can be used in as many scenarios as possible. Several configuration libraries I've used in the past can be created in a few lines with config-rs as it stands now.

This is the first release and the core features exist and work but there are several more features planned soon:

  • Remote configuration: etcd and consul
  • Configuration file watching
  • More data type support (date, time, durations, maps, arrays)
  • Deserialize pieces of config into structs with serde

If you find any errors or have any configuration scenarios that are not covered, please, let me know in the issues.

6 Likes

This is the first of its kind in the world of Rust right? I searched for something like this some weeks ago and failed.

1 Like

Yes. :tada: As indicated by the crate name being literally config (there was a previous crate under this name but it was a libconfig parser and has been renamed to libconfig).

I started trying to make a production server application in Rust and this is the first type of library I reach for normally. It didn't really exist. So I started making it. Contributions and suggestions welcome!