To chime in on this: configuration is one of the textbook cases of a "cross-cutting concern"; it's a little thing, but it is needed everywhere. "Everywhere" is always hard, no matter how tiny it is.
Other examples of cross-cutting concerns are logging and database access, for which it is commonly accepted to use high-powered libraries, and people will actively warn you away from rolling your own.
As for the reticence to pull in crates: this is very common for people coming from other languages, and very understandable. My advice is to stop worrying about it in Rust.
In most other languages, pulling in a library is hard and comes with a lot of overhead. Which version to use, how to upgrade it, how to link it to the build system, how to distribute it, etc..
And then some new release comes out and I have to rewrite half my code because some core API changed...
Lots of hassle! So people habitually avoid dependencies for "little" things.
The other side of the coin is javascript's NPM ecosystem, where there are single-purpose dependencies for literal one-liners like Leftpad
(leftpad! for crying out loud!). There are real advantages to tiny lego-block modules and it Just Works(tm) because the package manager is so good.
Rust has Cargo, and a community committed to Semantic Versioning (i.e. "not-breaking APIs", even with tooling).
In that respect, "taking on a dependency" is far more lightweigth than in most conventional languages, and more like in the Javascript/NPM ecosystem (but even better!)
Cargo solves almost all of the hassles of distribution and building, and the community focus on not-breaking means upgrades are virtually always a breeze.
Cargo has learned its lessons from Java's Maven, javascripts NPM, python's PyPi, ruby's Gems/Bundlr and Perl's CPAN, and even the various package managers of linux distributions. It takes the best properties of all of them.
Depencency management in Rust is probably the least painful/most pleasant in the world right now.
(Barring the open question on how to deal with system dependencies, which is unsolved in any language, and more the domain of linux distributions, mobile app-stores, etc.)
(Edit: added lots of links of where I get these wild ideas from )