Skip to content

Configlue

Typed configuration state your app can read and write.

Configlue is typed read/write configuration state for .NET. Application code reads and writes settings through a small state API, while storage and layout concerns stay outside normal application code.

It matters most when an application edits configuration rather than only consuming it.

Read-side abstractions cover a large part of the problem, but once an application edits its own settings, several questions arrive together:

  • how to write settings back without leaking storage details into application code;
  • how to combine multiple scopes or sources into one effective value;
  • how to preserve where each value came from;
  • how to choose where a change is written;
  • how to evolve the schema without breaking stored data;
  • how to observe external changes.

The pattern is familiar from tools such as Git, VS Code, and Chrome: layered scopes, precedence, and separate read and write targets. Configlue brings that pattern to ordinary .NET applications.

Most application code depends only on IReadOnlyState<T> and IWritableState<T>. One compact read/write flow looks like this:

var settings = ConfiglueApp.GetState<AppSettings>();
var current = await settings.GetValueAsync();
await settings.SaveAsync(patch =>
{
patch.Theme = "Dark";
});

Application code says what to read or write. How settings are stored and combined stays configured elsewhere. Concepts defines terms such as source, effective value, and provenance precisely.

Typed read/write state

Read with GetValueAsync and write with SaveAsync through a small state API. Start from Concepts.

Layered configuration and provenance

Combine multiple scopes or sources into one effective value while keeping where each value came from. See Concepts.

Sparse writes

Save only what changed, keeping the distinction between values that were set and values that were left alone. See Guides.

Schema evolution and validation

Grow the settings shape over time and keep stored data readable. See Guides.

Change observation and persistence

Observe external changes and keep persistence behavior outside application code. See Guides.

.NET host and platform integration

Use the same state model across different .NET hosts and UI frameworks. See Integrations.

Start with Getting Started for the smallest runnable setup.

When you already know what you need:

  • Concepts for the mental model behind state, sources, and writes.
  • Guides for task-oriented walkthroughs.
  • Integrations for host and platform combinations.
  • Reference for contracts that API signatures alone cannot express.