Awesome F#
A curated list of awesome F# frameworks, libraries, software and resources.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Main Language-Related Repositories
F# Wrappers for Popular .NET Libraries
ASP.NET Core Blazor
Bolero
Avalonia
Avalonia.FuncUI
MAUI
Fabulous
MSTest
FsUnit
System.Text.Json
FSharp.SystemTextJson
WPF
Elmish.WPF
Actor Frameworks
Akka.NET
Community-driven port of the popular Java/Scala framework Akka to .NET.
Akkling
F# typed API for Akka.NET.
Orleankka
Functional extension for Microsoft Orleans framework.
Orleans
Distributed virtual actor model.
Proto.actor
Cross-platform actor framework for .NET, Go, Java and Kotlin.
Build Tools
Cloud
Chia
An F# library which contains HelperFunctions for reporting, logging and Azure cloud operations.
Farmer
Repeatable Azure deployments with ARM templates made easy.
FsFirestore
Functional F# library to access Firestore database hosted on Google Cloud Platform (GCP) or Firebase.
Pulumi.FSharp.Extensions
F# computational expressions to reduce boilerplate in Pulumi code.
Code Analysis
Ionide FSharp.Analyzers.SDK
Library for building custom analyzers for F# / FSharp.Analyzers.Cli.
Code Generation
Compilers for Other Platforms
Concurrent, Asynchronous, and Parallel Programming
FIO
A type-safe, highly concurrent and asynchronous library for F# based on pure functional programming.
FSharp.Control.AsyncSeq
Asynchronous sequence support, integration with IAsyncEnumerable.
FSharp.Control.FusionTasks
F# Async workflow <--> .NET Task/ValueTask easy seamless interoperability library.
FSharpx.Async
Collection of asynchronous programming utilities for F#.
Hopac
Concurrent ML style concurrent programming library for F#.
IcedTasks
Cold tasks, cancellable tasks, and extensions for the async workflow.
Ply
High performance System.Threading.(Value)Task computation expressions for F#.
Reaction.AsyncRx
An implementation of Async Observables in F# for .NET and Fable.
TaskBuilder.fs
F# computation expression builder for System.Threading.Tasks.
Configuration
Argu
Declarative CLI argument/XML configuration parser for F# applications.
FsConfig
F# library for reading configuration data from environment variables and AppSettings with type safety.
Skid
Simple, single-file portable CLI utility for configuration templating.
docopt.fs
Command line arguments parser, F# port of docopt.
Data Science
Deedle
Exploratory data library for .NET.
DiffSharp
Functional automatic differentiation (AD) library.
FsLab
A collection of libraries for data-science. It provides a rapid development environment that lets you write advanced analysis with few lines of production-quality code.
IfSharp
F# for Jupyter Notebooks.
Math.NET Numerics
Methods and algorithms for numerical computations in science, engineering and every day use. F# specific bindings available.
Math.NET Symbolics
A basic open source computer algebra library for .NET, Silverlight and Mono written entirely in F#.
SIMDArray
SIMD enhanced Array extensions for faster computation.
Development Tools >IDE
F# Playground
Minimal playground for F#.
JetBrains Rider
Cross-platform .NET IDE with F# support (Proprietary, free for non-commercial use).
MonoDevelop
Cross-platform IDE mostly aimed at Mono/.NET developers.
Visual Studio
IDE from Microsoft with first class F# support (Windows only, Proprietary).
Development Tools >Editor Plugins
Emacs F# mode
F# support in Emacs (including Intellisense and Interactive mode).
FSharpFar
F# support for Far Manager.
FSharpLint
F# code linter.
Fantomas
F# code formatter.
Ionide
Atom Editor and Visual Studio Code package suite for cross platform F# development.
Vim F#
F# support for Vim.
VimSpeak
A tool to control Vim with your voice using speech recognition.
fsharp-notebook
Data science notebook for F# Interactive.
neofsharp.vim
Basic F# support for (Neo)Vim.
Development Tools >Performance Analysis
fasm
F# JIT disassembler, as a dotnet tool.
General Purpose Libraries
Aether
Optics library for F#, similar to the Haskell Data.Lens package.
Chessie
Railway-oriented programming.
Donald
A simple F# interface for ADO.NET.
DustyTables
Thin F# API for SqlClient for easy data access to ms sql server with functional seasoning on top.
ExtCore
Extended core library for F#.
FSharp.CosmosDb
An F# wrapper around the CosmosDB SDK, making it more functional-friendly.
FSharp.HashCollections
Fast hash-based immutable map and set.
FSharpLu
Lightweight utilities for string manipulations, logging, collection data structures, file operations, text processing, security, async, parsing, diagnostics, configuration files and Json serialization.
FSharpPlus
Extensions for F#.
FSharpx.Extras
A collection of libraries and tools for use with F#.
Fli
Computational expression to run system processes and manage their output.
Fling
Significantly reduces boilerplate needed to efficiently save/load complex domain entities to/from multiple tables.
FsToolkit.ErrorHandling
Clear, simple and powerful error handling with railway-oriented programming. Inspired by Chessie.
Fumble
Thin F# API for SQLite for easy data access to SQLite database with functional seasoning on top.
LiteDB.FSharp
F# Support for LiteDB, an embedded single file database for .NET.
Npgsql.FSharp
Thin F# wrapper around Npgsql, the PostgreSQL database driver.
SqlHydra
Suite of NuGet packages for working with databases in F# including query expressions and code generation tools (for generating strongly typed F# DTO record types based on your database tables). Supports MySQL, PostgreSQL, Oracle, SQL Server, and SQLite.
TypeShape
Small, extensible F# library for practical generic programming.
Validus
A composable validation library for F#, with built-in validators for most primitive types and easily extended through custom validators.
Vp.FSharp.Sql
Generic F# ADO provider wrapper (SqlServer, PostgreSQL, SQLite).
Game Development
FsUnity
F# libraries, tools, and plugins for the Unity game engine.
Garnet
Lightweight game composition library for F# with entity-component-system (ECS) and actor-like messaging features.
Godot
Tutorial how to use F# with Godot.
Nu Game Engine
Cross-platform F# 2D game engine built in the functional style. Uses SDL2 and Farseer Physics.
GUI
Avalonia.FuncUI
Develop cross-platform MVU GUI Applications using F# and Avalonia.
Elmish.WPF
Elmish (or MVU) approach to WPF programming.
Epoxy
An independent flexible XAML MVVM library for .NET.
Fabulous
F# functional app development, using declarative dynamic UI.
HTTP Clients
Logging
Package Management
Parsing
FParsec
The parser combinator library for F#.
FsAttoparsec
Port of Bryan O'Sullivan's attoparsec from Haskell to F#.
XParsec
Extensible, type-and-source-polymorphic, non-linear applicative parser combinator library for F# 3.0 and 4.0.
Serialization
FSharp.Json
Reflection-based serialization library.
FSharp.SystemTextJson
System.Text.Json extensions for F# types.
Fleece
JSON mapper for F#. It simplifies mapping from a Json library's JsonValue onto your types, and mapping from your types onto JsonValue.
FsCodec
F# Event-Union Contract Encoding with versioning tolerant converters.
FsPickler
Fast, multi-format messaging serializer for .NET.
Legivel
F# Yaml 1.2 parser.
Thoth.Json
JSON encoder/decoder library inspired by Elm.
Simulation
F# RISC-V Instruction Set formal specification
RISC-V CPU formal ISA Specification. RISC-V CPU simulator with ELF files execution.
Static Site Generators
SkunkHTML
Markdown blog with GitHub Pages.
Testing
Expecto
Smooth testing framework for F# with tests-as-values and parallelism by default.
Faqt
Fantastic fluent assertions for your F# tests and domain code.
FsCheck
Random testing for .NET.
FsUnit
Makes unit-testing with F# more enjoyable. It adds a special syntax to your favorite .NET testing framework.
NBomber
Simple load testing framework for Pull and Push scenarios.
Persimmon
Unit test framework for F# using computation expressions.
altcover
Cross-platform coverage gathering and processing tool set for .NET/.NET core and Mono.
canopy
F# web automation and testing framework.
fsharp-hedgehog
Property-based testing system for F#.
unquote
Write F# unit test assertions as quoted expressions.
xUnit.net
Free, open source, community-focused unit testing tool for the .NET Framework.
Type Providers
AzureStorageTypeProvider
F# Azure type provider which can be used to explore Blob, Table and Queue Azure Storage assets and easily apply CRUD operations on them.
DynamicsCRMProvider
Type provider for Microsoft Dynamics CRM 2011.
EasyBuild.FileSystemProvider
Type provider to provide a typed representation of files and directories based on your project structure or a virtual file system.
ExcelProvider
Excel type provider.
FSharp.Configuration
The project contains type providers for the configuration of .NET projects. Handles AppSettings, ResX, Yaml and Ini files.
FSharp.Data.Npgsql
F# type providers library on a top of well-known Npgsql ADO.NET client library.
FSharp.Data.SqlClient
F# type provider for statically typed access to T-SQL command parameters and result set.
FSharp.Data.Tdms
TDMS support for F#.
FSharp.Data.Toolbox
Library for various data access APIs based on FSharp.Data. The library currently includes the Twitter type provider for access to Twitter users and feeds, and SAS type provider to read SAS dataset files.
FSharp.Data.TypeProviders
Library that contains type providers for .edmx files, .dbml files, WSDL services, OData services, and SQL databases.
FSharp.Data
Data science library that contains type providers for CSV, HTML, JSON, XML, and WorldBank data.
FSharp.Management
The project contains various type providers for the management of the machine. Handles file system, registry, Windows Management Instrumentation, PowerShell and SystemTimeZones.
FSharp.Text.RegexProvider
Type provider for regular expressions.
Facil
Generates F# data access source code from SQL queries and stored procedures.
FsXaml
F# Tools for working with XAML Projects.
FsYaml
Typed Yaml library for F#.
GraphProvider
.dgml state machine type provider.
MatDataProvider
Erased type provider for .mat files (binary MATLAB format files).
R Type Provider
Type provider to interop with R.
Rezoom.SQL
Statically typed SQL for F#.
S3Provider
Experimental type provider for Amazon S3.
SQLProvider
General F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
SwaggerProvider
Generative type provider for Swagger.
Type Providers >Creating Type Providers
FSharp.TypeProviders.StarterPack
The ProvidedTypes SDK for creating F# type providers.
Visualization
FSharp.Charting
Charting library suitable for interactive F# scripting.
GG.Net
Visualization library for data scientists.
Plotly.NET
A Plotly-based general purpose plotting library for F#.
SharpVG
Create SVG vector graphics in F#.
XPlot
A plotting library for the F# programming language.
Web Frameworks
Bolero
F# in WebAssembly, develop SPAs with the full power of F# and .NET Blazor.
Falco
A functional-first toolkit for building brilliant ASP.NET Core applications using F#.
Felicity
Boilerplate-free, idiomatic JSON:API for your beautiful, idiomatic F# domain model.
Feliz
A fresh retake of the React API in Fable and a collection of high-quality components to build React applications in F#.
Genit
Cross-platform website generator and server using F#, Suave and PostgreSQL or MS SQL Server.
Giraffe
Native functional ASP.NET Core web framework for F# developers.
Oxpecker
ASP.NET Core based F# framework + supporting tools (ViewEngine, Htmx, OpenApi).
Saturn
Opinionated, web development framework for F# which implements the server-side, functional MVC pattern.
Suave
A simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
WebSharper
F#-based web programming platform including a compiler from F# code to JavaScript.
.NET Core Templates
ASP.NET Core WebAPI F# Template
dotnet new -i WebAPI.FSharp.Template::*
Expecto Template
dotnet new -i Expecto.Template::*
Fable, F# |> Babel
dotnet new -i Fable.Template::*
Fable-elmish
dotnet new -i Fable.Template.Elmish.React::*
Giraffe Template
dotnet new -i "giraffe-template::*"
MiniScaffold
F# Template for creating and publishing libraries targeting .NET Full (net45) and Core (netstandard1.6), dotnet new -i MiniScaffold::*
NancyFx Template
dotnet new -i NancyFx.Core.Template::*
SAFE Stack Template
dotnet new -i SAFE.Template::*
Resources >Blogs
.NET Blog (F# tag)
News and discussions about F# from the .NET team.
Codesuji
A community member blog, focusing on functional aspects on F#.
Krzysztof Cieslak
A blog of the Ionide maintainer.
Mark Seemann
A blog discussing various aspects of software design.
Sergey Tihon (F# Weekly)
Weekly newsletter collected across the ecosystem.
Tomas Petricek
A well-known community member working on a diverse set of topics.
Resources >Books
Domain Modeling Made Functional by Scott Wlaschin
Tackle software complexity with domain-driven design and F#.
F# in Action by Isaac Abraham
A practical guide in software development in F#.
Resources >Cheatsheets
F# Snips
Share your snippets of F# code.
F# cheatsheet
Quick reference for the main language features.
F# tour
Official language tour from Microsoft.
Guide for C# devs to learn F#
A 30-minute F# tutorial for C# programmers, with back-to-back code snippets.
Guide for Rust devs to learn F#
Informal manual for users of Rust and F# to read through to learn about the other language.
Learn F# in Y minutes
A guide recommended to quickly start programming in F#.
Resources >Community
Resources >Other Lists
Awesome .NET!
Collection of awesome .NET libraries, tools, frameworks and software.
Companies using F#
Community curated list of companies that use F# (maybe useful if you're looking for a job?)
F# Community Projects
Everything produced by the F# community.
Fable Resources
A curated list of useful Fable-related tutorials, libraries and software.
Resources >Websites
Community for F#
Links to dojos and recordings of community presentations.
Decompiler.com
Online C#/VB/F# decompiler.
DotNetFiddle
Online REPL.
F# Software Foundation
Main website.
F# for Fun and Profit
Reference tutorials.
SharpLab
C#/VB/F# compiler playground.
Try F#
Online tutorials, currently without execution of code due to Silverlight dependency.
cs2fs
Transform C# code to F# code.
fantomas-tools
A set of Fantomas related tools like AST viewer and online bug reporter.
Resources >Videos
Resources >Courses
Related lists in Programming Languages
See categoryAwesome Rust
rust-unofficial/awesome-rust
A curated list of Rust code and resources.
Awesome Mac
jaywcjlove/awesome-mac
This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.
Awesome Python
vinta/awesome-python
Curated Python frameworks, libraries and resources.
Awesome C++
fffaraz/awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Awesome Go
avelino/awesome-go
Curated Go frameworks and libraries.
Awesome PHP
ziadoz/awesome-php
A curated list of amazingly awesome PHP libraries, resources and shiny things.