> For the complete documentation index, see [llms.txt](https://vostok.gitbook.io/configuration/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vostok.gitbook.io/configuration/master.md).

# Home

## Vostok.Configuration in a nutshell

Vostok.Configuration is a [set](/configuration/modules.md) 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.

## Guiding design principles

* **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](/configuration/concepts-and-basics/configuration-sources.md) concept and universal [settings nodes](/configuration/concepts-and-basics/settings-nodes.md) abstraction.&#x20;

* **"Hot" configuration updates should be easy to leverage**.&#x20;

  * Hot configuration implies handling changes in settings without application restart. This is enabled by explicitly reactive [source](/configuration/concepts-and-basics/configuration-sources.md) design and [settings provider methods](/configuration/concepts-and-basics/configuration-provider.md).

* **Rich object models should be supported for user convenience**.

  * [Binding](/configuration/concepts-and-basics/binding-nodes-to-models.md) process supports a wide range of [primitives](/configuration/binding/primitives.md), [collections](/configuration/binding/collections.md), [classes](/configuration/binding/classes-and-structs.md), [interfaces](/configuration/advanced-scenarios/use-dynamic-interfaces.md) and employs a number of conventions for arbitrary types (anything with a `TryParse` method works).

* **It should be possible to extend the library with arbitrary data sources and object models**.

  * Two major extensions points are [custom configuration sources](/configuration/advanced-scenarios/create-custom-sources.md) and [binders](/configuration/advanced-scenarios/apply-custom-binders.md).

## Features

* [On-demand](/configuration/basic-scenarios/obtain-settings-from-provider.md) and [subscription-based](/configuration/basic-scenarios/observe-settings-via-provider.md) methods to obtain settings;

* Support for [required](/configuration/basic-scenarios/make-settings-required.md) and [secret](/configuration/basic-scenarios/make-settings-secret.md) settings;

* Support for custom settings [validation](/configuration/advanced-scenarios/apply-custom-validators.md);

* Wide selection of [built-in sources](/configuration/sources.md);

* Composable [binders](/configuration/concepts-and-basics/binding-nodes-to-models.md);

* Sources can be [combined](/configuration/basic-scenarios/combine-sources.md), [navigated](/configuration/basic-scenarios/scope-sources.md) and [transformed](/configuration/advanced-scenarios/transform-sources.md);

* [Integration](broken://pages/-M6UW9eiyb0CiAaPZGgB) with Microsoft configuration system;

## Guarantees

See [obtain](/configuration/basic-scenarios/obtain-settings-from-provider.md) / [observe](/configuration/basic-scenarios/observe-settings-via-provider.md) settings scenarios, [caching](/configuration/concepts-and-basics/caching-and-performance.md) and [error handling](/configuration/concepts-and-basics/error-handling.md) sections for details.

## Good starting points

{% content-ref url="/pages/-M6UPvC-GZbD6hpJXaFv" %}
[Quickstart](/configuration/quickstart.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6UQ-IGMqQNt7\_G8BwL" %}
[Concepts and basics](/configuration/concepts-and-basics.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6UQE6YKyTnIKaX4bjI" %}
[Basic scenarios](/configuration/basic-scenarios.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6UQ1JVd7hSjOJl7xL3" %}
[Modules](/configuration/modules.md)
{% endcontent-ref %}
