awesome-fsharp
A curated list of awesome F# frameworks, libraries, software and resources.
https://github.com/fsprojects/awesome-fsharp
Last synced: about 21 hours ago
JSON representation
-
Resources
-
Other Lists
- Awesome .NET! - Collection of awesome .NET libraries, tools, frameworks and software.
- F# Community Projects - FSharp community projects
- WTF# - podcast focused on F# and its ecosystem
- Fable Resources - A curated list of useful Fable-related tutorials, libraries 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.
- FSharpest - A directory to discover F# tools, libraries and resources.
-
Websites
- DotNetFiddle - Online REPL.
- SharpLab - C#/VB/F# compiler playground.
- Decompiler.com - Online C#/VB/F# decompiler.
- F# for Fun and Profit - Reference tutorials.
- Community for F# - Links to dojos and recordings of community presentations.
- cs2fs - Transform C# code to F# code
- Try F# - Online tutorials, currently without execution of code due to Silverlight dependency
- Community for F# - Links to dojos and recordings of community presentations.
- F# Software Foundation - Main website.
- 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.
-
Blogs
- Mark Seemann - A blog discussing various aspects of software design.
- .NET Blog (F# tag) - News and discussions about F# from the .NET team.
- Codesuji
- Krzysztof Cieslak - A blog of the Ionide maintainer.
- Sergey Tihon (F# Weekly) - Weekly newsletter collected across the ecosystem.
- Tomas Petricek
- Codesuji - A community member blog, focusing on functional aspects on F#.
- Tomas Petricek - A well-known community member working on a diverse set of topics.
-
Books
- F# in Action by Isaac Abraham - A practical guide in software development in F#.
- Domain Modeling Made Functional by Scott Wlaschin - Tackle software complexity with domain-driven design and F#.
-
Cheatsheets
- F# Snips - Share your snippets of F# code.
- F# tour
- Learn F# in Y minutes - A guide recommended to quickly start programming in F#.
- 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.
- F# cheatsheet - Quick reference for the main language features.
- F# tour - Official language tour from Microsoft.
- Guide for Rust devs to learn F# - Informal manual for users of Rust and F# to read through to learn about the other language.
-
Community
-
Videos
-
Courses
-
-
Package Management
-
F# Wrappers for Popular .NET Libraries
- ASP.NET Core Blazor
- System.Text.Json
- ASP.NET Core - fsharp/Giraffe) (+ optionally [Saturn](https://github.com/SaturnFramework/Saturn))<br/>[Oxpecker](https://github.com/Lanayx/Oxpecker)
- MAUI - dev/Fabulous)
- Avalonia
- WPF
- MSTest
-
Data Science
- Deep.Net - Deep learning library for F#. Provides symbolic model differentiation, automatic differentiation and compilation to CUDA GPUs. [Apache 2.0]
- m2cgen - A CLI tool to transpile trained classic ML models into a native F# code with zero dependencies.
- IfSharp - F# for Jupyter Notebooks.
- Synapses - Neural network library in F#.
- Math.NET Numerics - Methods and algorithms for numerical computations in science, engineering and every day use. F# specific bindings available.
- DiffSharp - Functional automatic differentiation (AD) library.
- SIMDArray ★ 42 ⧗ 11 - SIMD enhanced Array extensions for faster computation. [MIT]
- Deep.Net - Deep learning library for F#. Provides symbolic model differentiation, automatic differentiation and compilation to CUDA GPUs. [Apache 2.0]
- 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.
- Math.NET Symbolics ★ 203 ⧗ 5 - Math.NET Symbolics is a basic open source computer algebra library for .NET, Silverlight and Mono written entirely in F#. [MIT]
- SIMDArray - SIMD enhanced Array extensions for faster computation.
- Deedle - Exploratory data library for .NET.
- Math.NET Symbolics - A basic open source computer algebra library for .NET, Silverlight and Mono written entirely in F#.
-
Development Tools
-
IDE
- MonoDevelop - Cross-platform IDE mostly aimed at Mono/.NET developers. [LGPLv2 and X11/MIT]
- F# Playground - Minimal playground for F#.
-
Editor Plugins
- FSharpLint - F# code linter.
- FSharpFar - F# support for Far Manager.
- VimSpeak - VimSpeak lets you control Vim with your voice using speech recognition.
- Emacs F# mode - F# support in Emacs (including Intellisense and Interactive mode).
- Fantomas - F# code formatter.
- neofsharp.vim - Basic F# support for (Neo)Vim.
- fsharp-notebook - Data science notebook for F# Interactive.
- Vim F# - F# support for Vim.
-
Performance Analysis
- fasm - F# JIT disassembler, as a dotnet tool.
-
-
Game Development
-
Performance Analysis
- FsUnity - F# libraries, tools, and plugins for the Unity game engine.
- Godot - Tutorial how to use F# with Godot.
- Garnet - Lightweight game composition library for F# with entity-component-system (ECS) and actor-like messaging features.
- Nu Game Engine - Cross-platform F# 2D game engine built in the functional style. Uses SDL2 and Farseer Physics.
-
-
.Net Core Templates
-
Creating type providers
- Freya - -install Freya.Template::*`
-
-
Testing
-
Performance Analysis
- xUnit.net - Free, open source, community-focused unit testing tool for the .NET Framework.
- FsCheck - Random testing for .NET.
- NBomber - Simple load testing framework for Pull and Push scenarios.
- altcover - Cross-platform coverage gathering and processing tool set for .NET/.NET core and Mono.
- fsharp-hedgehog - Property-based testing system for F#.
- Expecto - Smooth testing framework for F# with tests-as-values and parallelism by default.
- canopy - F# web automation and testing framework.
- unquote - Write F# unit test assertions as quoted expressions.
- Faqt - Fantastic fluent assertions for your F# tests and domain code.
- FsUnit - FsUnit makes unit-testing with F# more enjoyable. It adds a special syntax to your favorite .NET testing framework.
- Persimmon - Unit test framework for F# using computation expressions.
-
-
Main Language-Related Repositories
-
Concurrent, Asynchronous, and Parallel Programming
- FSharpx.Async - Collection of asynchronous programming utilities for F#.
- FSharp.Control.AsyncSeq - Asynchronous sequence support, integration with `IAsyncEnumerable`.
- FSharp.Control.FusionTasks - F# Async workflow <--> .NET Task/ValueTask easy seamless interoperability library.
- Hopac - Concurrent ML style concurrent programming library for F#.
- Ply - High performance System.Threading.(Value)Task computation expressions for F#.
- TaskBuilder.fs - F# computation expression builder for System.Threading.Tasks.
- IcedTasks - Cold tasks, cancellable tasks, and extensions for the `async` workflow.
- FIO - A type-safe, highly concurrent and asynchronous library for F# based on pure functional programming.
- FIO - A type-safe, highly concurrent and asynchronous library for F# based on pure functional programming.
- Reaction.AsyncRx - An implementation of Async Observables in F# for .NET and Fable.
-
Type Providers
-
Performance Analysis
- SQLProvider - General F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
- 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.
- MatDataProvider - Erased type provider for `.mat` files (binary MATLAB format files).
- 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.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 - 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.
- R Type Provider - Type provider to interop with R.
- S3Provider - Experimental type provider for Amazon S3.
- SwaggerProvider - Generative type provider for Swagger.
-
Creating Type Providers
- FSharp.TypeProviders.StarterPack - The ProvidedTypes SDK for creating F# type providers.
-
-
Actor Frameworks
- Akka.NET - Community-driven port of the popular Java/Scala framework Akka to .NET.
- Orleans - Distributed virtual actor model.
- Orleankka - Functional extension for Microsoft Orleans framework.
- Akkling - F# typed API for Akka.NET.
- Proto.actor - Cross-platform actor framework for .NET, Go, Java and Kotlin.
-
F# wrappers for popular .NET libraries
- Xamarin.Forms - dev/Fabulous)
-
Configuration
- Argu - Declarative CLI argument/XML configuration parser for F# applications.
- docopt.fs ★ 18 ⧗ 0 - command line arguments parser, F# port of [docopt](https://github.com/docopt/docopt). [MIT]
- 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).
-
Compilers
- FSharp - The Open Edition of the F# compiler, core library and tools.
- F# Compiler Services ★ 159 ⧗ 0 - The F# Compiler, F# Interactive scripting engine and F# editing services as a component library. [Apache 2.0]
- Pengines.Client - Sandboxed Prolog environment.
-
Compilers for Other Platforms
-
GUI
-
Performance Analysis
- Elmish.WPF - Elmish (or MVU) approach to WPF programming.
- Avalonia.FuncUI - Develop cross-platform MVU GUI Applications using F# and Avalonia.
- Fabulous - F# functional app development, using declarative dynamic UI.
- Epoxy - An independent flexible XAML MVVM library for .NET.
-
-
Parsing
-
Performance Analysis
- 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.
-
-
Web Frameworks
-
Creating Type Providers
- Giraffe - Native functional ASP.NET Core web framework for F# developers.
- Suave - Suave is a simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
- Saturn - Opinionated, web development framework for F# which implements the server-side, functional MVC pattern.
- Genit - Cross-platform website generator and server using F#, Suave and PostgreSQL or MS SQL Server.
- Feliz - A fresh retake of the React API in Fable and a collection of high-quality components to build React applications in F#.
- 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.
- Oxpecker - ASP.NET Core based F# framework + supporting tools (ViewEngine, Htmx, OpenApi).
- WebSharper - F#-based web programming platform including a compiler from F# code to JavaScript.
-
-
General Purpose Libraries
-
Performance Analysis
- Chessie - Railway-oriented programming.
- Fli - Computational expression to run system processes and manage their output.
- FsToolkit.ErrorHandling - Clear, simple and powerful error handling with railway-oriented programming. Inspired by Chessie.
- LiteDB.FSharp - F# Support for [LiteDB](https://github.com/mbdavid/LiteDB), an embedded single file database for .NET.
- FSharp.CosmosDb - An F# wrapper around the CosmosDB SDK, making it more functional-friendly.
- FSharpx.Extras - FSharpx.Extras is a collection of libraries and tools for use with F#.
- Aether - Optics library for F#, similar to the Haskell Data.Lens package.
- TypeShape - Small, extensible F# library for practical generic 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.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#.
- Fling - Fling significantly reduces boilerplate needed to efficiently save/load complex domain entities to/from multiple tables.
- Fumble - Thin F# API for Sqlite for easy data access to sqlite database with functional seasoning on top.
- Npgsql.FSharp - Thin F# wrapper around [Npgsql](https://github.com/npgsql/npgsql), the PostgreSQL database driver.
- 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).
-
-
Visualization
-
Creating Type Providers
- GG.Net - Visualization library for data scientists.
- Plotly.NET - A Plotly-based general purpose plotting library for F#.
- FSharp.Charting - Charting library suitable for interactive F# scripting.
- SharpVG - Create SVG vector graphics in F#.
- XPlot - A plotting library for the F# programming language.
-
-
Simulation
-
Performance Analysis
- F# RISC-V Instruction Set formal specification - RISC-V CPU formal ISA Specification. RISC-V CPU simulator with ELF files execution.
-
-
.NET Core Templates
-
Creating Type Providers
- 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::*`
- 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::*`
- NancyFx Template - `dotnet new -i NancyFx.Core.Template::*`
- SAFE Stack Template - `dotnet new -i SAFE.Template::*`
-
-
Serialization
-
Performance Analysis
- FsPickler - Fast, multi-format messaging serializer for .NET.
- 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.
- Legivel - F# Yaml 1.2 parser.
- Thoth.Json - JSON encoder/decoder library inspired by Elm.
-
-
Actor frameworks
- Cricket ★ 141 ⧗ 380 - Actor framework for F#. [Unlicense]
-
Build Tools
-
Cloud
- FsFirestore - Functional F# library to access Firestore database hosted on Google Cloud Platform (GCP) or Firebase.
- Chia - Chia is a F# library which contains HelperFunctions for reporting, logging and Azure cloud operations.
- Farmer - Repeatable Azure deployments with ARM templates made easy.
- Pulumi.FSharp.Extensions - F# computational expressions to reduce boilerplate in Pulumi code.
-
Code Generation
-
Concurrent, asynchronous and parallel programming
- Giraffe.Tasks - Task computation expression to work natively with .NET's Tasks from an F# application.
- Reaction.AsyncRx - An implementation of Async Observables in F# for .NET and Fable. [MIT]
-
HTTP Clients
-
Code Analysis
- Ionide FSharp.Analyzers.SDK - Library for building custom analyzers for F# / FSharp.Analyzers.Cli.
-
Logging
-
Static Site Generators
-
Performance Analysis
- SkunkHTML - Markdown blog with GitHub Pages.
-
Programming Languages
Categories
Resources
64
Type Providers
23
General Purpose Libraries
19
Data Science
13
Development Tools
11
Testing
11
Concurrent, Asynchronous, and Parallel Programming
10
Web Frameworks
10
.NET Core Templates
8
Serialization
7
F# Wrappers for Popular .NET Libraries
7
Actor Frameworks
5
Visualization
5
Configuration
5
Main Language-Related Repositories
4
Game Development
4
Compilers for Other Platforms
4
Cloud
4
GUI
4
Compilers
3
Parsing
3
HTTP Clients
3
Package Management
2
Concurrent, asynchronous and parallel programming
2
Build Tools
2
Logging
2
Code Generation
2
Static Site Generators
1
.Net Core Templates
1
Code Analysis
1
Actor frameworks
1
F# wrappers for popular .NET libraries
1
Simulation
1
Sub Categories
Keywords
fsharp
50
dotnet
28
csharp
12
dotnet-core
8
async
5
testing
5
javascript
4
functional-programming
4
cross-platform
4
avaloniaui
3
xaml
3
wpf
3
elmish
3
concurrency
3
c-sharp
3
parallel
3
f-sharp
3
python
3
aspnet-core
3
machine-learning
3
computation-expressions
3
actors
3
microsoft
3
dotnet-standard
2
visual-studio
2
rust
2
dotnet-framework
2
task
2
compiler
2
orleans
2
powershell
2
plugin
2
java
2
test
2
testing-tools
2
mono
2
fs
2
simd
2
functional
2
avalonia
2
gui
2
mvu
2
web-framework
2
quickcheck
2
template-engine
2
giraffe
2
dotnet-template
2
middleware
2
neural-network
2
math
2