awesome-fsharp
A curated list of awesome F# frameworks, libraries, software and resources.
https://github.com/fsprojects/awesome-fsharp
Last synced: 2 days ago
JSON representation
-
Actor frameworks
- Cricket ★ 141 ⧗ 380 - Actor framework for F#. [Unlicense]
-
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
- FsFirestore - Functional F# library to access Firestore database hosted on Google Cloud Platform (GCP) or Firebase.
- Chia - An 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 Analysis
- Ionide FSharp.Analyzers.SDK - Library for building custom analyzers for F# / FSharp.Analyzers.Cli.
-
Code Generation
-
Compilers
- F# Compiler Services ★ 159 ⧗ 0 - The F# Compiler, F# Interactive scripting engine and F# editing services as a component library. [Apache 2.0]
- FSharp - The Open Edition of the F# compiler, core library and tools.
- Pengines.Client - Sandboxed Prolog environment.
-
Compilers for Other Platforms
-
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]
-
Concurrent, Asynchronous, and Parallel 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#.
- 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.
- 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.
-
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).
-
Data Science
- Deep.Net - Deep learning library for F#. Provides symbolic model differentiation, automatic differentiation and compilation to CUDA GPUs. [Apache 2.0]
- Deep.Net - Deep learning library for F#. Provides symbolic model differentiation, automatic differentiation and compilation to CUDA GPUs. [Apache 2.0]
- 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.
- m2cgen - A CLI tool to transpile trained classic ML models into a native F# code with zero dependencies.
- Math.NET Numerics - Methods and algorithms for numerical computations in science, engineering and every day use. F# specific bindings available.
- 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 ★ 42 ⧗ 11 - SIMD enhanced Array extensions for faster computation. [MIT]
- Synapses - Neural network library in F#.
- 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
-
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.
- 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.
- Ionide - Atom Editor and Visual Studio Code package suite for cross platform F# development.
- Vim F# - F# support for Vim.
-
IDE
- MonoDevelop - Cross-platform IDE mostly aimed at Mono/.NET developers. [LGPLv2 and X11/MIT]
- F# Playground - Minimal playground for F#.
- Visual Studio - IDE from Microsoft with first class F# support (Windows only, Proprietary).
- JetBrains Rider - Cross-platform .NET IDE with F# support (Proprietary, free for non-commercial use).
-
Performance Analysis
- fasm - F# JIT disassembler, as a dotnet tool.
-
-
F# wrappers for popular .NET libraries
- Xamarin.Forms - dev/Fabulous)
-
F# Wrappers for Popular .NET Libraries
- ASP.NET Core Blazor
- System.Text.Json
- Avalonia
- ASP.NET Core - fsharp/Giraffe) (+ optionally [Saturn](https://github.com/SaturnFramework/Saturn))<br/>[Oxpecker](https://github.com/Lanayx/Oxpecker)|
- MSTest
- WPF
- MAUI - dev/Fabulous) |
-
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.
-
-
General Purpose Libraries
-
Performance Analysis
- 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.
- FSharpLu - Lightweight utilities for string manipulations, logging, collection data structures, file operations, text processing, security, async, parsing, diagnostics, configuration files and Json serialization.
- 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.
- 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).
- 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.
- FSharp.HashCollections - Fast hash-based immutable map and set.
- FSharpPlus - Extensions for F#.
-
-
GUI
-
Performance Analysis
- 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
-
Main Language-Related Repositories
-
.Net Core Templates
-
Creating type providers
- Freya - -install Freya.Template::*`
-
-
.NET Core Templates
-
Creating Type Providers
- ASP.NET Core WebAPI F# Template - `dotnet new -i WebAPI.FSharp.Template::*`
- Expecto Template - `dotnet new -i Expecto.Template::*`
- 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::*`
- Fable, F# |> Babel - `dotnet new -i Fable.Template::*`
- Fable-elmish - `dotnet new -i Fable.Template.Elmish.React::*`
-
-
Package Management
-
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.
-
-
Resources
-
Blogs
- .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#.
- Mark Seemann - A blog discussing various aspects of software design.
- 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.
- Guide for Rust devs to learn F# - Informal manual for users of Rust and F# to read through to learn about the other language.
- F# tour - Official language tour from Microsoft.
-
Community
-
Courses
-
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
- Companies using F# - Community curated list of companies that use F# (maybe useful if you're looking for a job?)
- FSharpest - A directory to discover F# tools, libraries and resources.
- Fable Resources - A curated list of useful Fable-related tutorials, libraries and software.
- FSharpest - A directory to discover F# tools, libraries and resources.
- F# Community Projects - Everything produced by the F# community.
-
Videos
- Austin F# Meetup Group Recorded Presentations
- Intro to F#
- Fast Dictionary in F#
- F# Chats on performance
- Topological Sort
- Amplifying F# YouTube Channel
- F# Online YouTube Channel
- Topological Sort
- F# Chats on performance
- Fast Dictionary in F#
- Intro to F#
- Amplifying F# YouTube Channel
- F# Online YouTube Channel
- Austin F# Meetup Group Recorded Presentations
- Topological Sort
-
Websites
- 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
- Decompiler.com - Online C#/VB/F# decompiler.
- DotNetFiddle - Online REPL.
- SharpLab - C#/VB/F# compiler playground.
- Try F# - Online tutorials, currently without execution of code due to Silverlight dependency
- 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.
- cs2fs - Transform C# code to F# code.
- fantomas-tools - A set of Fantomas related tools like AST viewer and online bug reporter.
-
-
Serialization
-
Performance Analysis
- 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.
-
Programming Languages
Categories
Resources
70
Type Providers
24
General Purpose Libraries
20
Development Tools
14
Data Science
13
Testing
11
Concurrent, Asynchronous, and Parallel Programming
11
Web Frameworks
10
Serialization
8
.NET Core Templates
8
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
68
dotnet
32
csharp
13
dotnet-core
8
typeprovider
6
testing
6
async
5
f-sharp
5
cross-platform
4
javascript
4
sql
4
json
4
functional-programming
4
c-sharp
3
computation-expressions
3
elmish
3
wpf
3
xaml
3
concurrency
3
actors
3
avaloniaui
3
machine-learning
3
python
3
parallel
3
microsoft
3
aspnet-core
3
java
2
fable
2
web-framework
2
concurrent-programming
2
web
2
deep-learning
2
rust
2
dotnet-template
2
visual-studio
2
giraffe
2
simd
2
quickcheck
2
property-based-testing
2
mvu
2
gui
2
unit-testing
2
azure
2
avalonia
2
neural-network
2
functional
2
generic-programming
2
middleware
2
configuration-management
2
configuration
2