et1975 / awesome-fsharp

A curated list of awesome F# frameworks, libraries, software and resources.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Awesome F#

Awesome Join the chat at https://gitter.im/VPashkov/awesome-fsharp

A curated list of awesome F# frameworks, libraries, software and resources.

Table of Contents

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

.NET Library F# Wrapper
Avalonia Avalonia.FuncUI
ASP.NET Core Giraffe (+ optionally Saturn)
ASP.NET Core Blazor Bolero
MassTransit MassTransit.fs
MSTest/NUnit/xUnit.net FsUnit
System.Text.Json FSharp.SystemTextJson
WPF Elmish.WPF
Xamarin.Forms Fabulous

Authentication and Authorization

  • AAD.fs - Azure Active Directory OAuth2 libraries for Suave and Giraffe/Saturn. [MIT]

Actor frameworks

Build tools

  • FAKE ★ 733 ⧗ 0 - "F# Make" is a cross platform build automation system. [Apache 2.0]
  • Xake ★ 8 ⧗ 0 - Another MAKE utility implementation on F#, fully declarative with no-brain parallelism, inspired by Shake. [MIT]

Cloud

  • FsFirestore - Functional F# library to access Firestore database hosted on Google Cloud Platform (GCP) or Firebase. [MIT]
  • Chia ★ 3 ⧗ 0 - Chia is a F# library which contains HelperFunctions for reporting, logging and Azure cloud operations. [Apache-2.0]

Code Generation

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

Compilers

Concurrent, asynchronous and parallel programming

  • FSharp.Control.AsyncSeq ★ 28 ⧗ 12 - Collection of asynchronous programming utilities for F#. [Apache 2.0]
  • FSharp.Control.FusionTasks - F# Async workflow <--> .NET Task/ValueTask easy seamless interoperability library.
  • FSharpx.Async ★ 37 ⧗ 56 - Collection of asynchronous programming utilities for F#. [Apache 2.0]
  • FsShelter - Apache Storm topologies entirely in F#, run w/ or w/o Storm. [Apache 2.0]
  • Giraffe.Tasks ★ 13 ⧗ 0 - task computation expression to work natively with .NET's Tasks from an F# application. [Apache 2.0]
  • Hopac ★ 268 ⧗ 7 - Concurrent ML style concurrent programming library for F#. [MIT]
  • Ply - High performance System.Threading.(Value)Task computation expressions for F#. [MIT]
  • Reaction.AsyncRx - An implementation of Async Observables in F# for .NET and Fable. [MIT]
  • TaskBuilder.fs - F# computation expression builder for System.Threading.Tasks. [CC0]

Configuration

  • Argu ★ 145 ⧗ 0 - Declarative CLI argument/XML configuration parser for F# applications. [MIT]
  • docopt.fs ★ 18 ⧗ 0 - command line arguments parser, F# port of docopt. [MIT]
  • FsConfig ★ 14 ⧗ 1 - F# library for reading configuration data from environment variables and AppSettings with type safety. [Unlicense]
  • Skid ★ 3 ⧗ 0 - Simple, single-file portable CLI utility for configuration templating. [MIT]

Data Science

  • Deedle ★ 347 ⧗ 21 - Deedle: Exploratory data library for .NET. [BSD-2-Clause]
  • Deep.Net - Deep learning library for F#. Provides symbolic model differentiation, automatic differentiation and compilation to CUDA GPUs. [Apache 2.0]
  • DiffSharp ★ 106 ⧗ 70 - DiffSharp is a functional automatic differentiation (AD) library. [BSD-2-Clause]
  • FsLab ★ 97 ⧗ 171 - FsLab is 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. [Apache 2.0]
  • IfSharp * 272 ⧗ 1 - F# for Jupyter Notebooks. [BSD-3-Clause]
  • m2cgen - A CLI tool to transpile trained classic ML models into a native F# code with zero dependencies. [MIT]
  • Math.NET Numerics ★ 1,923 ⧗ 0 - Math.NET Numerics aims to provide methods and algorithms for numerical computations in science, engineering and every day use. F# specific bindings available. [MIT]
  • 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#. [MIT]

Development Tools

IDE

  • F# Playground - Minimal playground for F#. [GPL 3.0]
  • Jetbrains Rider - Cross-Platform .Net IDE with F# support. [Proprietary, free for open source projects]
  • MonoDevelop - Cross-platform IDE mostly aimed at Mono/.NET developers. [LGPLv2 and X11/MIT]
  • Visual Studio - IDE from Microsoft with first class F# support(Windows only). [Proprietary]

Editor plugins

Performance analysis

  • fasm - F# jit disassembler, as a dotnet tool [MIT]

General purpose libraries

  • Aether ★ 71 ⧗ 0 - Optics library for F#, similar to the Haskell Data.Lens package. [MIT]
  • Chessie ★ 96 ⧗ 272 - Railway-oriented programming. [Unlicense]
  • Donald - A simple F# interface for ADO.NET. [Apache-2.0]
  • DustyTables ★ 39 ⧗ 6 - Thin F# API for SqlClient for easy data access to ms sql server with functional seasoning on top [MIT]
  • ExtCore ★ 96 ⧗ 0 - Extended core library for F#. [Apache 2.0]
  • Fling - Fling significantly reduces boilerplate needed to efficiently save/load complex domain entities to/from multiple tables. [MIT]
  • FSharp.CosmosDb - An F# wrapper around the CosmosDB SDK, making it more functional-friendly [MIT]
  • FSharp.HashCollections ★ 4 ⧗ 0 - Library providing fast hash based immutable map and set. [MIT]
  • FSharpLu ★ 133 ⧗ 20 - Lightweight utilities for string manipulations, logging, collection data structures, file operations, text processing, security, async, parsing, diagnostics, configuration files and Json serialization. [MIT]
  • FsCassy - Composable and unit-testable Cassandra DB queries. [Apache 2.0]
  • FsToolkit.ErrorHandling - Clear, simple and powerful error handling with railway-oriented programming. Inspired by Chessie. [MIT]
  • Fumble ★ 30 ⧗ 0 - Thin F# API for Sqlite for easy data access to sqlite database with functional seasoning on top [MIT]
  • FSharpPlus ★ 142 ⧗ 34 - Extensions for F#. [Apache 2.0]
  • FSharpx.Extras ★ 589 ⧗ 28 - FSharpx.Extras is a collection of libraries and tools for use with F#. [Unlicense]
  • LiteDB.FSharp - F# Support for LiteDB, an embedded single file database for .NET [MIT]
  • Npgsql.FSharp - Thin F# wrapper around Npgsql, the PostgreSQL database driver [MIT]
  • TypeShape ★ 64 ⧗ 0 - Small, extensible F# library for practical generic programming. [MIT]
  • 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). [MIT]

Game development

  • FsUnity - F# Libraries, Tools, and Plugins for the Unity3d Game Engine. [Unilicense]
  • Garnet ★ 15 ⧗ 6 - Garnet is a lightweight game composition library for F# with entity-component-system (ECS) and actor-like messaging features. [MIT]
  • Godot - Tutorial how to use F# with Godot.
  • Nu Game Engine ★ 502 ⧗ 9 - Cross-platform F# 2D game engine built in the functional style. Uses SDL2 and Farseer Physics. [MIT]

GUI

  • Avalonia.FuncUI - Develop cross-platform MVU GUI Applications using F# and Avalonia
  • Epoxy - An independent flexible XAML MVVM library for .NET
  • Fabulous - F# Functional App Development, using declarative dynamic UI

HTTP Clients

  • Http.fs - A simple, functional HTTP client library for F#
  • FsHttp - A convenient library for consuming HTTP/REST endpoints via F#. [Apache 2.0]
  • Oryx - A high performance .NET cross platform functional HTTP request handler library for writing HTTP clients and orchestrating web requests. [Apache 2.0]

Logging

  • FsLibLog ★ 26 ⧗ 0 - FsLibLog is a single file you can copy paste or add through Paket Github dependencies to provide your F# library with a logging abstraction. [MIT]
  • Logary ★ 259 ⧗ 0 - Logary is a high performance, multi-target logging, metric, tracing and health-check library for mono and .Net. [Apache 2.0]

Package Management

  • NuGet - NuGet is the package manager for the Microsoft development platform including .NET. [Apache 2.0]
  • Paket ★ 903 ⧗ 0 - Dependency manager for .NET with support for NuGet packages and Git repositories. [MIT]

Parsing

PreCompilation

Serialization

  • FlexSearch ★ 133 ⧗ 14 - high performance REST/SOAP services based full-text searching platform built on top of the popular Lucene search library. [Apache 2.0]

Simulation

Testing

Type providers

Creating type providers

Visualization

Web frameworks

  • Bolero ★ 629 - F# in WebAssembly, develop SPAs with the full power of F# and .NET Blazor. [Apache 2.0]
  • 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. Optimized for developer happiness. [MIT]
  • Freya ★ 241 ⧗ 7 - Modern, purely functional stack for web programming in F#. [Apache 2.0]
  • Genit ★ 62 ⧗ 1 - Cross-platform website generator and server using F#, Suave and PostgreSQL or MS SQL Server.
  • Giraffe ★ 526 ⧗ 49 - Native functional ASP.NET Core web framework for F# developers. [Apache 2.0]
  • Saturn ★ 62 ⧗ 2 - Opinionated, web development framework for F# which implements the server-side, functional MVC pattern. [MIT]
  • Suave ★ 756 ⧗ 2 - 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. [Apache 2.0]
  • WebSharper ★ 270 ⧗ 7 - F#-based web programming platform including a compiler from F# code to JavaScript. [Apache 2.0]

.Net Core Templates

Resources

Blogs

Books

Cheatsheets

Community

Other Lists

Websites

Videos

Courses

About

A curated list of awesome F# frameworks, libraries, software and resources.

License:Creative Commons Zero v1.0 Universal