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.


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!