Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. F#
  3. FSharp.Configuration

FSharp.Configuration

NOASSERTIONF#1.5.0

Type-safe configuration type providers for .NET projects in F#, supporting AppSettings, YAML, ResX, and INI files.

Visit WebsiteGitHubGitHub
115 stars58 forks0 contributors

What is FSharp.Configuration?

FSharp.Configuration is a collection of F# type providers that enable type-safe, compile-time access to various configuration file formats in .NET projects. It provides strongly-typed interfaces for AppSettings, YAML, ResX, and INI files, eliminating runtime parsing errors and improving developer productivity with IntelliSense support.

Target Audience

F# developers building .NET applications who need robust, type-safe configuration management without runtime surprises.

Value Proposition

Developers choose FSharp.Configuration for its compile-time validation of configuration files, which catches errors early, reduces boilerplate code, and provides excellent tooling integration through F#'s type provider system.

Overview

The FSharp.Configuration project contains type providers for the configuration of .NET projects.

Use Cases

Best For

  • Accessing App.config settings with full IntelliSense in F# projects
  • Parsing YAML configuration files into strongly-typed F# records
  • Managing localization resources from .resx files in a type-safe manner
  • Reading INI configuration files with structured section support
  • Eliminating runtime configuration errors through compile-time validation
  • Reducing boilerplate code for configuration parsing in .NET applications

Not Ideal For

  • Teams developing in C# or other .NET languages without F# integration
  • Applications requiring dynamic configuration loading from sources like databases or APIs at runtime
  • Projects where configuration schema changes frequently, necessitating frequent recompilation
  • Environments using JSON configuration as the primary format, as it's not a core supported type

Pros & Cons

Pros

Compile-Time Validation

Catches configuration errors during development by leveraging F#'s type provider system, as highlighted in the philosophy of reducing runtime errors and eliminating boilerplate.

IntelliSense Support

Provides autocompletion and type hints in IDEs for configuration keys, as seen with the AppSettings Provider feature for standard .NET config files.

Multi-Format Coverage

Supports AppSettings, YAML, ResX, and INI files, offering flexibility for different configuration needs in .NET applications, as listed in the key features.

Type Safety

Ensures configuration data is accessed with correct types, eliminating common parsing errors and improving robustness, as emphasized in the value proposition.

Cons

F# Exclusive

Only usable in F# projects, limiting its applicability in mixed-language or non-F# .NET environments, which narrows the audience significantly.

Static Configuration

Best suited for file-based configurations that don't change at runtime, as type providers operate at compile-time, making dynamic reloads cumbersome.

Setup Complexity

The README indicates a non-trivial testing setup with specific Visual Studio paths, suggesting potential hurdles in initial configuration and integration.

Frequently Asked Questions

Quick Stats

Stars115
Forks58
Contributors0
Open Issues46
Last commit1 year ago
CreatedSince 2014

Tags

#type-providers#yaml-parser#ini-parser#compile-time-safety#fsharp#appsettings

Built With

F
F#
.
.NET

Links & Resources

Website

Included in

F#1.4k
Auto-fetched 15 hours ago

Related Projects

FSharp.DataFSharp.Data

F# Data: Library for Data Access

Stars871
Forks284
Last commit2 days ago
Rezoom.SQLRezoom.SQL

Statically typechecks a common SQL dialect and translates it to various RDBMS backends

Stars679
Forks23
Last commit1 month ago
SQLProviderSQLProvider

A general F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.

Stars625
Forks149
Last commit14 days ago
SwaggerProviderSwaggerProvider

F# generative Type Provider for Swagger

Stars278
Forks60
Last commit6 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub