← Back to Awesome

Sections

F#

GitHub repository ↗ synced 2026/8/9

Awesome F# Awesome

F# is a programming language with focus on immutability, type inference, first-class functions, powerful data types and pattern matching, targeting .NET and other platforms.

This is a curated list of awesome F# frameworks, libraries, software and resources.

Main Language-Related Repositories

F# main repository
F# projects
F# suggestions
F# RFCs

F# Wrappers for Popular .NET Libraries

Looking to have a more enjoyable experience when consuming a popular .NET library? Here is a quick table.

.NET Library F# Wrapper
ASP.NET Core Blazor Bolero
ASP.NET Core Giraffe (+ optionally Saturn)Oxpecker
Avalonia Avalonia.FuncUI
MAUI/Xamarin.Forms Fabulous
MSTest/NUnit/xUnit.net 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

FAKE

"F# Make" is a cross platform build automation system.

Xake

Another Make utility implementation on F#, fully declarative with no-brain parallelism, inspired by Shake.

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

Hawaii

A dotnet CLI tool to generate type-safe F# clients from OpenAPI/Swagger services.

Myriad

A pre-compilation code generator.

Compilers for Other Platforms

Fable

F# to JavaScript compiler.

Fez

F# to Erlang compiler.

FunScript

F# to JavaScript compiler with JQuery etc. mappings through a TypeScript type provider.

Juniper

Functional Reactive Programming for the Arduino and other microcontrollers.

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](https://github.com/docopt/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.

Synapses

Neural network library in F#.

m2cgen

A CLI tool to transpile trained classic ML models into a native F# code with zero dependencies.

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).

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.

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](https://github.com/mbdavid/LiteDB), an embedded single file database for .NET.

Npgsql.FSharp

Thin F# wrapper around [Npgsql](https://github.com/npgsql/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

FsHttp

A convenient library for consuming HTTP/REST endpoints via F#.

Http.fs

A simple, functional HTTP client library for F#.

Oryx

A high performance .NET cross-platform functional HTTP request handler library for writing HTTP clients and orchestrating web requests.

Logging

FsLibLog

A single file you can copy and paste or add through Paket GitHub dependencies to provide your F# library with a logging abstraction.

Logary

High performance, multi-target logging, metric, tracing and health-check library for mono and .NET.

Package Management

NuGet

The package manager for the Microsoft development platform including .NET.

Paket

Dependency manager for .NET with support for NuGet packages and Git repositories.

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.

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.

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#.

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 Python devs to learn F#

A 30-minute F# tutorial for Python 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#.

Community

Amplifying F#
F# on BlueSky
F# on Discord
F# on Discourse
F# on Reddit
F# on Telegram
F# on Twitter

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.

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.

Videos

Amplifying F# YouTube Channel
F# Online YouTube Channel
Austin F# Meetup Group Recorded Presentations
F# Chats on performance
Fast Dictionary in F#
Intro to F#
Topological Sort

Courses

Write yourself a scheme in 48 hours using F#