Skip to content

fsprojects/awesome-fsharp

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.

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

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
Avalonia Avalonia.FuncUI
ASP.NET Core Giraffe (+ optionally Saturn)
ASP.NET Core Blazor Bolero
MSTest/NUnit/xUnit.net FsUnit
System.Text.Json FSharp.SystemTextJson
WPF Elmish.WPF
Xamarin.Forms Fabulous

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

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]
  • 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

Search

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published