F#
A .NET-based language with focus on functional programming.
Contents
Main Language-Related Repositories
F# Wrappers for Popular .NET Libraries
Web Frameworks
F# in WebAssembly, develop SPAs with the full power of F# and .NET Blazor.
Native functional ASP.NET Core web framework for F# developers.
Opinionated, web development framework for F# which implements the server-side, functional MVC pattern.
ASP.NET Core based F# framework + supporting tools (ViewEngine, Htmx, OpenApi).
A functional-first toolkit for building brilliant ASP.NET Core applications using F#.
Boilerplate-free, idiomatic JSON:API for your beautiful, idiomatic F# domain model.
A fresh retake of the React API in Fable and a collection of high-quality components to build React applications in F#.
Cross-platform website generator and server using F#, Suave and PostgreSQL or MS SQL Server.
A simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
F#-based web programming platform including a compiler from F# code to JavaScript.
GUI
Develop cross-platform MVU GUI Applications using F# and Avalonia.
F# functional app development, using declarative dynamic UI.
Elmish (or MVU) approach to WPF programming.
An independent flexible XAML MVVM library for .NET.
Testing
Makes unit-testing with F# more enjoyable. It adds a special syntax to your favorite .NET testing framework.
Smooth testing framework for F# with tests-as-values and parallelism by default.
Fantastic fluent assertions for your F# tests and domain code.
Random testing for .NET.
Simple load testing framework for Pull and Push scenarios.
Unit test framework for F# using computation expressions.
Cross-platform coverage gathering and processing tool set for .NET/.NET core and Mono.
F# web automation and testing framework.
Property-based testing system for F#.
Write F# unit test assertions as quoted expressions.
Serialization
System.Text.Json extensions for F# types.
Reflection-based serialization library.
JSON mapper for F#. It simplifies mapping from a Json library's JsonValue onto your types, and mapping from your types onto JsonValue.
F# Event-Union Contract Encoding with versioning tolerant converters.
Fast, multi-format messaging serializer for .NET.
F# Yaml 1.2 parser.
Actor Frameworks
Community-driven port of the popular Java/Scala framework Akka to .NET.
F# typed API for Akka.NET.
Functional extension for Microsoft Orleans framework.
Distributed virtual actor model.
Cross-platform actor framework for .NET, Go, Java and Kotlin.
Build Tools
Cloud
An F# library which contains HelperFunctions for reporting, logging and Azure cloud operations.
Repeatable Azure deployments with ARM templates made easy.
Functional F# library to access Firestore database hosted on Google Cloud Platform (GCP) or Firebase.
F# computational expressions to reduce boilerplate in Pulumi code.
Code Analysis
Code Generation
Compilers for Other Platforms
F# to JavaScript compiler.
F# to Erlang compiler.
F# to JavaScript compiler with JQuery etc. mappings through a TypeScript type provider.
Functional Reactive Programming for the Arduino and other microcontrollers.
Concurrent, Asynchronous, and Parallel Programming
A type-safe, highly concurrent and asynchronous library for F# based on pure functional programming.
Asynchronous sequence support, integration with IAsyncEnumerable.
F# Async workflow <--> .NET Task/ValueTask easy seamless interoperability library.
Collection of asynchronous programming utilities for F#.
Concurrent ML style concurrent programming library for F#.
Cold tasks, cancellable tasks, and extensions for the async workflow.
High performance System.Threading.(Value)Task computation expressions for F#.
An implementation of Async Observables in F# for .NET and Fable.
F# computation expression builder for System.Threading.Tasks.
Configuration
Declarative CLI argument/XML configuration parser for F# applications.
F# library for reading configuration data from environment variables and AppSettings with type safety.
Simple, single-file portable CLI utility for configuration templating.
Command line arguments parser, F# port of docopt.
Data Science
Exploratory data library for .NET.
Functional automatic differentiation (AD) library.
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.
F# for Jupyter Notebooks.
Methods and algorithms for numerical computations in science, engineering and every day use. F# specific bindings available.
A basic open source computer algebra library for .NET, Silverlight and Mono written entirely in F#.
SIMD enhanced Array extensions for faster computation.
Neural network library in F#.
A CLI tool to transpile trained classic ML models into a native F# code with zero dependencies.
Development Tools
Editor Plugins
F# code linter.
F# code formatter.
F# support in Emacs (including Intellisense and Interactive mode).
F# support for Far Manager.
F# support for Vim.
A tool to control Vim with your voice using speech recognition.
Data science notebook for F# Interactive.
Basic F# support for (Neo)Vim.
Performance Analysis
General Purpose Libraries
Optics library for F#, similar to the Haskell Data.Lens package.
Railway-oriented programming.
A simple F# interface for ADO.NET.
Thin F# API for SqlClient for easy data access to ms sql server with functional seasoning on top.
Extended core library for F#.
An F# wrapper around the CosmosDB SDK, making it more functional-friendly.
Fast hash-based immutable map and set.
Lightweight utilities for string manipulations, logging, collection data structures, file operations, text processing, security, async, parsing, diagnostics, configuration files and Json serialization.
Extensions for F#.
A collection of libraries and tools for use with F#.
Computational expression to run system processes and manage their output.
Significantly reduces boilerplate needed to efficiently save/load complex domain entities to/from multiple tables.
Clear, simple and powerful error handling with railway-oriented programming. Inspired by Chessie.
Thin F# API for SQLite for easy data access to SQLite database with functional seasoning on top.
F# Support for LiteDB, an embedded single file database for .NET.
Thin F# wrapper around Npgsql, the PostgreSQL database driver.
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.
Small, extensible F# library for practical generic programming.
A composable validation library for F#, with built-in validators for most primitive types and easily extended through custom validators.
Generic F# ADO provider wrapper (SqlServer, PostgreSQL, SQLite).
Game Development
HTTP Clients
A convenient library for consuming HTTP/REST endpoints via F#.
A simple, functional HTTP client library for F#.
A high performance .NET cross-platform functional HTTP request handler library for writing HTTP clients and orchestrating web requests.
Logging
Package Management
Parsing
Static Site Generators
Type Providers
F# Azure type provider which can be used to explore Blob, Table and Queue Azure Storage assets and easily apply CRUD operations on them.
Type provider for Microsoft Dynamics CRM 2011.
Type provider to provide a typed representation of files and directories based on your project structure or a virtual file system.
Excel type provider.
The project contains type providers for the configuration of .NET projects. Handles AppSettings, ResX, Yaml and Ini files.
F# type providers library on a top of well-known Npgsql ADO.NET client library.
F# type provider for statically typed access to T-SQL command parameters and result set.
TDMS support for F#.
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.
Library that contains type providers for .edmx files, .dbml files, WSDL services, OData services, and SQL databases.
Data science library that contains type providers for CSV, HTML, JSON, XML, and WorldBank data.
The project contains various type providers for the management of the machine. Handles file system, registry, Windows Management Instrumentation, PowerShell and SystemTimeZones.
Type provider for regular expressions.
Generates F# data access source code from SQL queries and stored procedures.
F# Tools for working with XAML Projects.
Typed Yaml library for F#.
.dgml state machine type provider.
Erased type provider for .mat files (binary MATLAB format files).
Type provider to interop with R.
Statically typed SQL for F#.
Experimental type provider for Amazon S3.
General F# SQL database erasing type provider, supporting LINQ queries, schema exploration, individuals, CRUD operations and much more besides.
Generative type provider for Swagger.
The ProvidedTypes SDK for creating F# type providers.
Visualization
Charting library suitable for interactive F# scripting.
Visualization library for data scientists.
A Plotly-based general purpose plotting library for F#.
Create SVG vector graphics in F#.
A plotting library for the F# programming language.
.NET Core Templates
dotnet new -i WebAPI.FSharp.Template::*
dotnet new -i Expecto.Template::*
dotnet new -i Fable.Template.Elmish.React::*
dotnet new -i "giraffe-template::*"
F# Template for creating and publishing libraries targeting .NET Full (net45) and Core (netstandard1.6), dotnet new -i MiniScaffold::*
dotnet new -i NancyFx.Core.Template::*
dotnet new -i SAFE.Template::*