Vostok.Configuration is a set of libraries offering configuration tools to .NET applications. It handles fetching configuration data from files or APIs, parsing and converting it to user-defined model classes.
-
Configuration data sources should be composable regardless of storage formats.
- It should be easy to combine settings from JSON files, environment variables and custom APIs. This is achieved with configuration source concept and universal settings nodes abstraction.
-
"Hot" configuration updates should be easy to leverage.
- Hot configuration implies handling changes in settings without application restart. This is enabled by explicitly reactive source design and settings provider methods.
-
Rich object models should be supported for user convenience.
- Binding process supports a wide range of primitives, collections, classes, interfaces and employs a number of conventions for arbitrary types (anything with a
TryParse
method works).
- Binding process supports a wide range of primitives, collections, classes, interfaces and employs a number of conventions for arbitrary types (anything with a
-
It should be possible to extend the library with arbitrary data sources and object models.
- Two major extensions points are custom configuration sources and binders.
-
On-demand and subscription-based methods to obtain settings;
-
Support for custom settings validation;
-
Wide selection of built-in sources;
-
Composable binders;
-
Sources can be combined, navigated and transformed;
-
Integration with Microsoft configuration system;
See obtain / observe settings scenarios, caching and error handling sections for details.
{% page-ref page="quickstart.md" %}
{% page-ref page="concepts-and-basics/" %}
{% page-ref page="basic-scenarios/" %}
{% page-ref page="modules/" %}