Files
awesome-awesomeness/html/fsharp.html
2024-04-20 19:22:54 +02:00

812 lines
37 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1
id="awesome-f"><img src="http://fsprojects.github.io/assets/logo.png" width="26">
Awesome F#</h1>
<p><a href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a> <a
href="https://gitter.im/VPashkov/awesome-fsharp?utm_source=badge&amp;utm_medium=badge&amp;utm_campaign=pr-badge&amp;utm_content=badge"><img
src="https://badges.gitter.im/VPashkov/awesome-fsharp.svg"
alt="Join the chat at https://gitter.im/VPashkov/awesome-fsharp" /></a></p>
<p>A curated list of awesome F# frameworks, libraries, software and
resources.</p>
<h2 id="table-of-contents">Table of Contents</h2>
<ul>
<li><a href="#">Awesome F#</a>
<ul>
<li><a href="#f-wrappers-for-popular-net-libraries">F# wrappers for
popular .NET libraries</a></li>
<li><a href="#actor-frameworks">Actor frameworks</a></li>
<li><a href="#build-tools">Build tools</a></li>
<li><a href="#cloud">Cloud</a></li>
<li><a href="#compilers">Compilers</a></li>
<li><a
href="#concurrent-asynchronous-and-parallel-programming">Concurrent,
asynchronous and parallel programming</a></li>
<li><a href="#configuration">Configuration</a></li>
<li><a href="#data-science">Data Science</a></li>
<li><a href="#development-tools">Development Tools</a>
<ul>
<li><a href="#ide">IDE</a></li>
<li><a href="#editor-plugins">Editor plugins</a></li>
<li><a href="#performance-analysis">Performance analysis</a></li>
</ul></li>
<li><a href="#game-development">Game development</a></li>
<li><a href="#general-purpose-libraries">General purpose
libraries</a></li>
<li><a href="#gui">GUI</a></li>
<li><a href="#http-clients">HTTP Clients</a></li>
<li><a href="#logging">Logging</a></li>
<li><a href="#package-management">Package Management</a></li>
<li><a href="#parsing">Parsing</a></li>
<li><a href="#precompilation">PreCompilation</a></li>
<li><a href="#search">Search</a></li>
<li><a href="#serialization">Serialization</a></li>
<li><a href="#simulation">Simulation</a></li>
<li><a href="#testing">Testing</a></li>
<li><a href="#type-providers">Type providers</a>
<ul>
<li><a href="#creating-type-providers">Creating type providers</a></li>
</ul></li>
<li><a href="#visualization">Visualization</a></li>
<li><a href="#web-frameworks">Web frameworks</a></li>
<li><a href="#net-core-templates">.Net Core Templates</a></li>
<li><a href="#resources">Resources</a>
<ul>
<li><a href="#blogs">Blogs</a></li>
<li><a href="#cheatsheets">Cheatsheets</a></li>
<li><a href="#community">Community</a></li>
<li><a href="#other-lists">Other Lists</a></li>
<li><a href="#websites">Websites</a></li>
<li><a href="#videos">Videos</a></li>
<li><a href="#courses">Courses</a></li>
</ul></li>
</ul></li>
</ul>
<h2 id="f-wrappers-for-popular-.net-libraries">F# wrappers for popular
.NET libraries</h2>
<p>Looking to have a more enjoyable experience when consuming a popular
.NET library? Here is a quick table.</p>
<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="header">
<th>.NET Library</th>
<th>F# Wrapper</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><a href="https://github.com/AvaloniaUI/Avalonia">Avalonia</a></td>
<td><a
href="https://github.com/fsprojects/Avalonia.FuncUI">Avalonia.FuncUI</a></td>
</tr>
<tr class="even">
<td><a href="https://github.com/dotnet/aspnetcore">ASP.NET Core</a></td>
<td><a href="https://github.com/giraffe-fsharp/Giraffe">Giraffe</a> (+
optionally <a
href="https://github.com/SaturnFramework/Saturn">Saturn</a>)</td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/dotnet/aspnetcore/tree/main/src/Components">ASP.NET
Core Blazor</a></td>
<td><a href="https://github.com/fsbolero/Bolero">Bolero</a></td>
</tr>
<tr class="even">
<td><a href="https://github.com/microsoft/testfx">MSTest</a>/<a
href="https://github.com/nunit/nunit">NUnit</a>/<a
href="https://github.com/xunit/xunit">xUnit.net</a></td>
<td><a href="https://github.com/fsprojects/FsUnit">FsUnit</a></td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/dotnet/runtime/tree/main/src/libraries/System.Text.Json">System.Text.Json</a></td>
<td><a
href="https://github.com/Tarmil/FSharp.SystemTextJson">FSharp.SystemTextJson</a></td>
</tr>
<tr class="even">
<td><a href="https://github.com/dotnet/wpf">WPF</a></td>
<td><a href="https://github.com/elmish/Elmish.WPF">Elmish.WPF</a></td>
</tr>
<tr class="odd">
<td><a
href="https://github.com/xamarin/Xamarin.Forms">Xamarin.Forms</a></td>
<td><a href="https://github.com/fabulous-dev/Fabulous">Fabulous</a></td>
</tr>
</tbody>
</table>
<h2 id="actor-frameworks">Actor frameworks</h2>
<ul>
<li><strong><a href="https://github.com/akkadotnet/akka.net">Akka.NET ★
2239 ⧗ 0</a></strong> - Community-driven port of the popular Java/Scala
framework Akka to .NET. [Apache 2.0]</li>
<li><a href="https://github.com/Horusiath/Akkling">Akkling ★ 45 ⧗ 1</a>
- F# typed API for Akka.NET. [Apache 2.0]</li>
<li><a href="https://github.com/fsprojects/Cricket">Cricket ★ 141 ⧗
380</a> - Actor framework for F#. [Unlicense]</li>
<li><a href="https://github.com/OrleansContrib/Orleankka">Orleankka ★
175 ⧗ 5</a> - Functional API for Orleans Framework. [Apache 2.0]</li>
<li><strong><a href="https://github.com/dotnet/orleans">Orleans ★ 2754 ⧗
0</a></strong> - Distributed Virtual Actor Model. [MIT]</li>
<li><strong><a
href="https://github.com/AsynkronIT/protoactor-dotnet">Proto.actor ★ 692
⧗ 0</a></strong> - Cross-platform actor framework for .NET, GO, JAVA and
KOTLIN. [Apache 2.0]</li>
</ul>
<h2 id="build-tools">Build tools</h2>
<ul>
<li><strong><a href="https://github.com/fsharp/FAKE">FAKE ★ 733 ⧗
0</a></strong> - “F# Make” is a cross platform build automation system.
[Apache 2.0]</li>
<li><strong><a href="https://github.com/OlegZee/Xake">Xake ★ 8 ⧗
0</a></strong> - Another MAKE utility implementation on F#, fully
declarative with no-brain parallelism, inspired by Shake. [MIT]</li>
</ul>
<h2 id="cloud">Cloud</h2>
<ul>
<li><a href="https://github.com/mrbandler/FsFirestore">FsFirestore</a> -
Functional F# library to access Firestore database hosted on Google
Cloud Platform (GCP) or Firebase. [MIT]</li>
<li><a href="https://github.com/DanpowerGruppe/Chia">Chia ★ 3 ⧗ 0</a> -
Chia is a F# library which contains HelperFunctions for reporting,
logging and Azure cloud operations. [Apache-2.0]</li>
</ul>
<h2 id="code-generation">Code Generation</h2>
<ul>
<li><a href="https://github.com/Zaid-Ajaj/Hawaii">Hawaii</a> - A dotnet
CLI tool to generate type-safe F# clients from OpenAPI/Swagger
services.</li>
</ul>
<h2 id="compilers">Compilers</h2>
<ul>
<li><a href="https://github.com/fsharp/FSharp.Compiler.Service">F#
Compiler Services ★ 159 ⧗ 0</a> - The F# Compiler, F# Interactive
scripting engine and F# editing services as a component library. [Apache
2.0]</li>
<li><strong><a href="https://github.com/fable-compiler/Fable">Fable ★
808 ⧗ 0</a></strong> - F# to JavaScript Compiler. [Apache 2.0]</li>
<li><a href="https://github.com/kjnilsson/fez">Fez ★ 49 ⧗ 0</a> - F# to
Erlang compiler. [MIT]</li>
<li><strong><a href="https://github.com/fsharp/fsharp">FSharp ★ 1549 ⧗
0</a></strong> - The Open Edition of the F# compiler, core library and
tools. [Apache 2.0]</li>
<li><a href="https://github.com/ZachBray/FunScript">FunScript ★ 446 ⧗
64</a> - F# to JavaScript compiler with JQuery etc. mappings through a
TypeScript type provider. [Apache-2.0]</li>
<li><a href="https://github.com/calebh/Juniper">Juniper ★ 73 ⧗ 0</a> -
Functional Reactive Programming for the Arduino and other
microcontrollers. [MIT]</li>
<li><a
href="https://github.com/ninjarobot/Pengines.Client">Pengines.Client ★ 3
⧗ 0</a> - sandboxed Prolog environment. [BSD-2-Clause]</li>
<li><strong><a href="https://github.com/Microsoft/visualfsharp">Visual
F# ★ 988 ⧗ 0</a></strong> - The Visual F# compiler and tools. [Apache
2.0]</li>
</ul>
<h2 id="concurrent-asynchronous-and-parallel-programming">Concurrent,
asynchronous and parallel programming</h2>
<ul>
<li><a href="https://github.com/iyyel/fio">FIO</a> - A type-safe, highly
concurrent and asynchronous library for F# based on pure functional
programming [GNU v3]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Control.AsyncSeq">FSharp.Control.AsyncSeq
★ 28 ⧗ 12</a> - Collection of asynchronous programming utilities for F#.
[Apache 2.0]</li>
<li><a
href="https://github.com/kekyo/FSharp.Control.FusionTasks">FSharp.Control.FusionTasks</a>
- F# Async workflow &lt;&gt; .NET Task/ValueTask easy seamless
interoperability library.</li>
<li><a href="https://github.com/fsprojects/FSharpx.Async">FSharpx.Async
★ 37 ⧗ 56</a> - Collection of asynchronous programming utilities for F#.
[Apache 2.0]</li>
<li><a
href="https://github.com/giraffe-fsharp/giraffe.tasks">Giraffe.Tasks ★
13 ⧗ 0</a> - task computation expression to work natively with .NETs
Tasks from an F# application. [Apache 2.0]</li>
<li><a href="https://github.com/Hopac/Hopac">Hopac ★ 268 ⧗ 7</a> -
Concurrent ML style concurrent programming library for F#. [MIT]</li>
<li><a href="https://github.com/crowded/ply">Ply</a> - High performance
System.Threading.(Value)Task computation expressions for F#. [MIT]</li>
<li><a href="https://github.com/dbrattli/Reaction">Reaction.AsyncRx</a>
- An implementation of Async Observables in F# for .NET and Fable.
[MIT]</li>
<li><a
href="https://github.com/rspeele/TaskBuilder.fs">TaskBuilder.fs</a> - F#
computation expression builder for System.Threading.Tasks. [CC0]</li>
</ul>
<h2 id="configuration">Configuration</h2>
<ul>
<li><p><a href="https://github.com/fsprojects/Argu">Argu ★ 145 ⧗ 0</a> -
Declarative CLI argument/XML configuration parser for F# applications.
[MIT]</p></li>
<li><p><a href="https://github.com/docopt/docopt.fs/">docopt.fs ★ 18 ⧗
0</a> - command line arguments parser, F# port of <a
href="https://github.com/docopt/docopt">docopt</a>. [MIT]</p></li>
<li><p><a href="https://github.com/demystifyfp/FsConfig">FsConfig ★ 14 ⧗
1</a> - F# library for reading configuration data from environment
variables and AppSettings with type safety. [Unlicense]</p></li>
<li><p><a href="https://github.com/Meyhem/Skid">Skid ★ 3 ⧗ 0</a> -
Simple, single-file portable CLI utility for configuration templating.
[MIT] ## Data Science</p></li>
<li><p><a href="https://github.com/BlueMountainCapital/Deedle">Deedle ★
347 ⧗ 21</a> - Deedle: Exploratory data library for .NET.
[BSD-2-Clause]</p></li>
<li><p><a href="http://www.deepml.net">Deep.Net</a> - Deep learning
library for F#. Provides symbolic model differentiation, automatic
differentiation and compilation to CUDA GPUs. [Apache 2.0]</p></li>
<li><p><a href="https://github.com/DiffSharp/DiffSharp">DiffSharp ★ 106
⧗ 70</a> - DiffSharp is a functional automatic differentiation (AD)
library. [BSD-2-Clause]</p></li>
<li><p><a href="https://github.com/fslaborg/FsLab">FsLab ★ 97 ⧗ 171</a>
- 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]</p></li>
<li><p><a href="https://github.com/fsprojects/IfSharp">IfSharp * 272 ⧗
1</a> - F# for Jupyter Notebooks. [BSD-3-Clause]</p></li>
<li><p><a href="https://github.com/BayesWitnesses/m2cgen">m2cgen</a> - A
CLI tool to transpile trained classic ML models into a native F# code
with zero dependencies. [MIT]</p></li>
<li><p><strong><a
href="https://github.com/mathnet/mathnet-numerics">Math.NET Numerics ★
1,923 ⧗ 0</a></strong> - Math.NET Numerics aims to provide methods and
algorithms for numerical computations in science, engineering and every
day use. F# specific bindings available. [MIT]</p></li>
<li><p><a href="https://github.com/mathnet/mathnet-symbolics/">Math.NET
Symbolics ★ 203 ⧗ 5</a> - Math.NET Symbolics is a basic open source
computer algebra library for .NET, Silverlight and Mono written entirely
in F#. [MIT]</p></li>
<li><p><a href="https://github.com/jackmott/SIMDArray">SIMDArray ★ 42 ⧗
11</a> - SIMD enhanced Array extensions for faster computation.
[MIT]</p></li>
<li><p><a href="https://github.com/mrdimosthenis/Synapses">Synapses</a>
- Neural network library in F#. [MIT]</p></li>
</ul>
<h2 id="development-tools">Development Tools</h2>
<h3 id="ide">IDE</h3>
<ul>
<li><a href="https://github.com/Seng-Jik/FSharpPlayground">F#
Playground</a> - Minimal playground for F#. [GPL 3.0]</li>
<li><a href="https://www.jetbrains.com/rider">Jetbrains Rider</a> -
Cross-Platform .Net IDE with F# support. [Proprietary, free for open
source projects]</li>
<li><a href="http://www.monodevelop.com/">MonoDevelop</a> -
Cross-platform IDE mostly aimed at Mono/.NET developers. [LGPLv2 and
X11/MIT]</li>
<li><a href="https://www.visualstudio.com/">Visual Studio</a> - IDE from
Microsoft with first class F# support(Windows only). [Proprietary]</li>
</ul>
<h3 id="editor-plugins">Editor plugins</h3>
<ul>
<li><a href="https://github.com/fsharp/emacs-fsharp-mode">Emacs F# mode
★ 80 ⧗ 27</a> - F# support in Emacs (including Intellisense and
Interactive mode) [Apache 2.0]</li>
<li><a href="https://github.com/fsharp/fsharpbinding">F# Bindings ★ 321
⧗ 261</a> - Archive of F# Language Bindings for Open Editors. [Apache
2.0]</li>
<li><a href="https://github.com/fsprojects/fantomas">Fantomas ★ 472 ⧗
115</a> - F# code formatter. [Apache 2.0]</li>
<li><a href="https://github.com/fsprojects/FSharpLint">FSharpLint ★ 223
⧗ 55</a> - F# code linter. [MIT]</li>
<li><a href="https://github.com/nightroman/FarNet">FSharpFar ★ 33 ⧗
54</a> - F# support for Far Manager. [BSD-3-Clause]</li>
<li><a href="http://ionide.io/">Ionide</a> - Atom Editor and Visual
Studio Code package suite for cross platform F# development. [MIT]</li>
<li><a href="https://github.com/fsharp/vim-fsharp">Vim F# ★ 66 ⧗ 3</a> -
F# support for Vim. [MIT]</li>
<li><a
href="https://github.com/adelarsq/neofsharp.vim">neofsharp.vim</a> -
Basic F# support for (Neo)Vim [MIT]</li>
<li><a href="https://github.com/AshleyF/VimSpeak">VimSpeak ★ 305 ⧗
910</a> - VimSpeak lets you control Vim with your voice using speech
recognition. [MIT]</li>
<li><a
href="https://github.com/fsprojects/VisualFSharpPowerTools">Visual F#
Power Tools ★ 310 ⧗ 53</a> - Power commands for F# in Visual Studio.
[Apache 2.0]</li>
<li><a
href="https://github.com/pablofrommars/fsharp-notebook">fsharp-notebook</a>
- Data Science Notebook for F# interactive. [MIT]</li>
</ul>
<h3 id="performance-analysis">Performance analysis</h3>
<ul>
<li><a href="https://github.com/d-edge/fasm">fasm</a> - F# jit
disassembler, as a dotnet tool [MIT]</li>
</ul>
<h2 id="general-purpose-libraries">General purpose libraries</h2>
<ul>
<li><a href="https://github.com/xyncro/aether">Aether ★ 71 ⧗ 0</a> -
Optics library for F#, similar to the Haskell Data.Lens package.
[MIT]</li>
<li><a href="https://github.com/fsprojects/Chessie">Chessie ★ 96 ⧗
272</a> - Railway-oriented programming. [Unlicense]</li>
<li><a href="https://github.com/pimbrouwers/Donald">Donald</a> - A
simple F# interface for ADO.NET. [Apache-2.0]</li>
<li><a href="https://github.com/Zaid-Ajaj/DustyTables">DustyTables ★ 39
⧗ 6</a> - Thin F# API for SqlClient for easy data access to ms sql
server with functional seasoning on top [MIT]</li>
<li><a href="https://github.com/jack-pappas/ExtCore">ExtCore ★ 96 ⧗
0</a> - Extended core library for F#. [Apache 2.0]</li>
<li><a href="https://github.com/cmeeren/Fling">Fling</a> - Fling
significantly reduces boilerplate needed to efficiently save/load
complex domain entities to/from multiple tables. [MIT]</li>
<li><a
href="https://github.com/aaronpowell/fsharp.cosmosdb">FSharp.CosmosDb</a>
- An F# wrapper around the CosmosDB SDK, making it more
functional-friendly [MIT]</li>
<li><a
href="https://github.com/mvkara/fsharp-hashcollections">FSharp.HashCollections
★ 4 ⧗ 0</a> - Library providing fast hash based immutable map and set.
[MIT]</li>
<li><a href="https://github.com/Microsoft/fsharplu">FSharpLu ★ 133 ⧗
20</a> - Lightweight utilities for string manipulations, logging,
collection data structures, file operations, text processing, security,
async, parsing, diagnostics, configuration files and Json serialization.
[MIT]</li>
<li><a
href="https://github.com/demystifyfp/FsToolkit.ErrorHandling">FsToolkit.ErrorHandling</a>
- Clear, simple and powerful error handling with railway-oriented
programming. Inspired by Chessie. [MIT]</li>
<li><a href="https://github.com/tforkmann/Fumble">Fumble ★ 30 ⧗ 0</a> -
Thin F# API for Sqlite for easy data access to sqlite database with
functional seasoning on top [MIT]</li>
<li><a href="https://github.com/gmpl/FSharpPlus">FSharpPlus ★ 142 ⧗
34</a> - Extensions for F#. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/FSharpx.Extras">FSharpx.Extras ★ 589
⧗ 28</a> - FSharpx.Extras is a collection of libraries and tools for use
with F#. [Unlicense]</li>
<li><a
href="https://github.com/Zaid-Ajaj/LiteDB.FSharp">LiteDB.FSharp</a> - F#
Support for <a href="https://github.com/mbdavid/LiteDB">LiteDB</a>, an
embedded single file database for .NET [MIT]</li>
<li><a
href="https://github.com/Zaid-Ajaj/Npgsql.FSharp">Npgsql.FSharp</a> -
Thin F# wrapper around <a
href="https://github.com/npgsql/npgsql">Npgsql</a>, the PostgreSQL
database driver [MIT]</li>
<li><a href="https://github.com/eiriktsarpalis/TypeShape">TypeShape ★ 64
⧗ 0</a> - Small, extensible F# library for practical generic
programming. [MIT]</li>
<li><a href="https://github.com/pimbrouwers/Validus">Validus</a> - A
composable validation library for F#, with built-in validators for most
primitive types and easily extended through custom validators.</li>
<li><a
href="https://github.com/veepee-oss/Vp.FSharp.Sql">Vp.FSharp.Sql</a> -
Generic F# ADO Provider Wrapper (SqlServer, PostgreSql, Sqlite).
[MIT]</li>
</ul>
<h2 id="game-development">Game development</h2>
<ul>
<li><a href="https://github.com/FsUnity">FsUnity</a> - F# Libraries,
Tools, and Plugins for the Unity3d Game Engine. [Unilicense]</li>
<li><a href="https://github.com/bcarruthers/garnet">Garnet ★ 15 ⧗ 6</a>
- Garnet is a lightweight game composition library for F# with
entity-component-system (ECS) and actor-like messaging features.
[MIT]</li>
<li><a href="http://www.lkokemohr.de/fsharp_godot.html">Godot</a> -
Tutorial how to use F# with Godot.</li>
<li><strong><a href="https://github.com/bryanedds/Nu">Nu Game Engine ★
502 ⧗ 9</a></strong> - Cross-platform F# 2D game engine built in the
functional style. Uses SDL2 and Farseer Physics. [MIT]</li>
</ul>
<h2 id="gui">GUI</h2>
<ul>
<li><a
href="https://github.com/fsprojects/Avalonia.FuncUI">Avalonia.FuncUI</a>
- Develop cross-platform MVU GUI Applications using F# and Avalonia</li>
<li><a href="https://github.com/kekyo/epoxy">Epoxy</a> - An independent
flexible XAML MVVM library for .NET</li>
<li><a href="https://github.com/fabulous-dev/Fabulous">Fabulous</a> - F#
Functional App Development, using declarative dynamic UI</li>
</ul>
<h2 id="http-clients">HTTP Clients</h2>
<ul>
<li><a href="https://github.com/haf/Http.fs">Http.fs</a> - A simple,
functional HTTP client library for F#</li>
<li><a href="https://github.com/ronaldschlenker/FsHttp">FsHttp</a> - A
convenient library for consuming HTTP/REST endpoints via F#. [Apache
2.0]</li>
<li><a href="https://github.com/cognitedata/oryx">Oryx</a> - A high
performance .NET cross platform functional HTTP request handler library
for writing HTTP clients and orchestrating web requests. [Apache
2.0]</li>
</ul>
<h2 id="logging">Logging</h2>
<ul>
<li><a href="https://github.com/TheAngryByrd/FsLibLog">FsLibLog ★ 26 ⧗
0</a> - 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]</li>
<li><a href="https://github.com/logary/logary/">Logary ★ 259 ⧗ 0</a> -
Logary is a high performance, multi-target logging, metric, tracing and
health-check library for mono and .Net. [Apache 2.0]</li>
</ul>
<h2 id="package-management">Package Management</h2>
<ul>
<li><a href="https://www.nuget.org/">NuGet</a> - NuGet is the package
manager for the Microsoft development platform including .NET. [Apache
2.0]</li>
<li><strong><a href="https://github.com/fsprojects/Paket">Paket ★ 903 ⧗
0</a></strong> - Dependency manager for .NET with support for NuGet
packages and Git repositories. [MIT]</li>
</ul>
<h2 id="parsing">Parsing</h2>
<ul>
<li><a href="https://github.com/stephan-tolksdorf/fparsec">FParsec ★ 50
⧗ 0</a> - FParsec is a parser combinator library for F#. [<a
href="http://www.quanttec.com/fparsec/license.html">BSD-2-Clause</a>]</li>
<li><a href="https://github.com/haf/FsAttoparsec">FsAttoparsec ★ 1 ⧗
0</a> - Port of Bryan OSullivans attoparsec from Haskell to F#.
[BSD-3-Clause]</li>
<li><a href="https://github.com/corsis/XParsec">XParsec ★ 29 ⧗ 2</a> -
Extensible, type-and-source-polymorphic, non-linear applicative parser
combinator library for F# 3.0 and 4.0. [BSD-3-Clause]</li>
</ul>
<h2 id="precompilation">PreCompilation</h2>
<ul>
<li><a href="https://github.com/MoiraeSoftware/myriad">Myriad ★ 38 ⧗
4</a> - Myriad is a pre-compilation code generator</li>
</ul>
<h2 id="serialization">Serialization</h2>
<ul>
<li><a href="https://github.com/jet/FsCodec">FsCodec ★ 21 ⧗ 7</a> - F#
Event-Union Contract Encoding with versioning tolerant converters.
[Apache 2.0]</li>
<li><a href="https://github.com/vsapronov/FSharp.Json">FSharp.Json ★ 72
⧗ 15</a> - F# JSON Reflection based serialization library.
[Apache-2.0]</li>
<li><a
href="https://github.com/Tarmil/FSharp.SystemTextJson">FSharp.SystemTextJson
★ 36 ⧗ 0</a> - System.Text.Json extensions for F# types. [MIT]</li>
<li><a href="https://github.com/mausch/Fleece">Fleece ★ 94 ⧗ 76</a> -
Fleece is a JSON mapper for F#. It simplifies mapping from a Json
librarys JsonValue onto your types, and mapping from your types onto
JsonValue. [Apache-2.0]</li>
<li><a href="https://github.com/mbraceproject/FsPickler">FsPickler ★ 195
⧗ 13</a> - Fast, multi-format messaging serializer for .NET. [MIT]</li>
<li><a href="https://github.com/fjoppe/Legivel">Legivel ★ 19 ⧗ 4</a> -
F# Yaml 1.2 parser. [Unlicense]</li>
<li><a href="https://thoth-org.github.io/Thoth.Json/">Thoth.Json ★ 40 ⧗
11</a> - Json encoder/decoder library inspire by Elm. [MIT]</li>
</ul>
<h2 id="search">Search</h2>
<ul>
<li><a href="https://github.com/flexsearch/flexsearch">FlexSearch ★ 133
⧗ 14</a> - high performance REST/SOAP services based full-text searching
platform built on top of the popular Lucene search library. [Apache
2.0]</li>
</ul>
<h2 id="simulation">Simulation</h2>
<ul>
<li><a href="https://github.com/mrLSD/riscv-fs">F# RISC-V Instruction
Set formal specification</a> - RISC-V CPU formal ISA Specification.
RISC-V CPU simulator with ELF files execution. [MIT]</li>
</ul>
<h2 id="testing">Testing</h2>
<ul>
<li><a href="https://github.com/SteveGilham/altcover">altcover ★ 139 ⧗
0</a> - Cross-platform coverage gathering and processing tool set for
.net/.net core and Mono. [MIT]</li>
<li><a href="https://github.com/lefthandedgoat/canopy">canopy ★ 304 ⧗
2</a> - F# web automation and testing framework. [MIT]</li>
<li><a href="https://github.com/haf/expecto">Expecto ★ 124 ⧗ 2</a> -
Smooth testing framework for F# with tests-as-values and parallelism by
default. [Apache 2.0]</li>
<li><a href="https://github.com/fscheck/FsCheck">FsCheck ★ 415 ⧗ 34</a>
- Random Testing for .NET. [BSD-3-Clause]</li>
<li><a
href="https://github.com/hedgehogqa/fsharp-hedgehog">fsharp-hedgehog ★
42 ⧗ 4</a> - Property-based testing system for F#. [Apache 2.0]</li>
<li><a href="https://github.com/fsprojects/FsUnit">FsUnit ★ 340 ⧗ 86</a>
- FsUnit makes unit-testing with F# more enjoyable. It adds a special
syntax to your favorite .NET testing framework. [MIT]</li>
<li><a href="https://github.com/PragmaticFlow/NBomber">NBomber ★ 14 ⧗
23</a> - simple load testing framework for Pull and Push scenarios.
[Apache 2.0]</li>
<li><a href="https://github.com/persimmon-projects/Persimmon">Persimmon
★ 29 ⧗ 9</a> - Unit test framework for F# using computation expressions.
[MIT]</li>
<li><a href="https://github.com/swensensoftware/unquote">unquote ★ 88 ⧗
17</a> - Write F# unit test assertions as quoted expressions. [Apache
2.0]</li>
<li><a href="https://xunit.github.io/">xUnit.net</a> - Free, open
source, community-focused unit testing tool for the .NET Framework.
[Apache 2.0]</li>
</ul>
<h2 id="type-providers">Type providers</h2>
<ul>
<li><a
href="https://github.com/fsprojects/ApiaryProvider">ApiaryProvider ★ 9 ⧗
380</a> - Type provider for Apiary.io. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/AzureStorageTypeProvider">AzureStorageTypeProvider
★ 45 ⧗ 20</a> - F# Azure Type Provider which can be used to explore
Blob, Table and Queue Azure Storage assets and easily apply CRUD
operations on them. [Unilicense]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Interop.ComProvider">COM Type
Provider ★ 36 ⧗ 330</a> - Type provider for COM interop.
[Unilicense]</li>
<li><a
href="https://github.com/fsprojects/DynamicsCRMProvider">DynamicsCRMProvider
★ 8 ⧗ 380</a> - Type provider for Microsoft Dynamics CRM 2011. [Apache
2.0]</li>
<li><a href="https://github.com/fsprojects/ExcelProvider">ExcelProvider
★ 45 ⧗ 75</a> - Excel type provider. [Unilicense]</li>
<li><a href="https://github.com/cmeeren/Facil">Facil</a> - Facil
generates F# data access source code from SQL queries and stored
procedures. Optimized for developer happiness. [MIT]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Configuration">FSharp.Configuration
★ 60 ⧗ 6</a> - The project contains type providers for the configuration
of .NET projects. Handles AppSettings, ResX, Yaml and Ini files. [Apache
2.0]</li>
<li><a href="https://github.com/fsharp/FSharp.Data">FSharp.Data ★ 375 ⧗
8</a> - Data science library that contains type providers for CSV, HTML,
JSON, XML, and WorldBank data. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Data.DbPedia">FSharp.Data.DbPedia
★ 9 ⧗ 379</a> - F# type provider for DBpedia. [Unilicense]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Data.HiveProvider">FSharp.Data.HiveProvider
★ 8 ⧗ 379</a> - Demonstrator F# type provider for Apache Hive. [Apache
2.0]</li>
<li><a
href="https://github.com/demetrixbio/FSharp.Data.Npgsql">FSharp.Data.Npgsql
★ 6 ⧗ 1</a> - F# type providers library on a top of well-known Npgsql
ADO.NET client library. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Data.SqlClient">FSharp.Data.SqlClient
★ 121 ⧗ 16</a> - F# Type Provider for statically typed access to T-SQL
command parameters and result set. [Apache 2.0]</li>
<li><a
href="https://github.com/mettekou/FSharp.Data.Tdms">FSharp.Data.Tdms ★ 0
⧗ 1</a> - TDMS support for F# [MIT]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Data.Toolbox">FSharp.Data.Toolbox
★ 38 ⧗ 7</a> - 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. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Data.TypeProviders">FSharp.Data.TypeProviders
★ 9 ⧗ 379</a> - Library that contains type providers for
<code>.edmx</code> files, <code>.dbml</code> files, WSDL services, OData
services, and SQL databases. [Unilicense]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Management">FSharp.Management
★ 59 ⧗ 1</a> - The project contains various type providers for the
management of the machine. Handles file system, registry, Windows
Management Instrumentation, PowerShell and SystemTimeZones. [Apache
2.0]</li>
<li><a
href="https://github.com/fsprojects/FSharp.Text.RegexProvider">FSharp.Text.RegexProvider
★ 29 ⧗ 285</a> - Type provider for regular expressions. [Apache
2.0]</li>
<li><a href="https://github.com/fsprojects/FsXaml">FsXaml ★ 158 ⧗
453</a> - F# Tools for working with XAML Projects. [MIT]</li>
<li><a href="https://github.com/bleis-tift/FsYaml">FsYaml ★ 33 ⧗ 41</a>
- Typed Yaml library for F#. [NYSL Version 0.9982]</li>
<li><a href="https://github.com/fsprojects/GraphProvider">GraphProvider
★ 21 ⧗ 379</a> - <code>.dgml</code> state machine type provider. [Apache
2.0]</li>
<li><a href="https://github.com/fsprojects/matprovider">MatDataProvider
★ 6 ⧗ 378</a> - Erased type provider for <code>.mat</code> files (binary
MATLAB format files). [Apache 2.0]</li>
<li><a href="https://github.com/BlueMountainCapital/FSharpRProvider">R
Type Provider ★ 159 ⧗ 365</a> - Type provider to interop with R.
[BSD-2-Clause]</li>
<li><a href="https://github.com/rspeele/Rezoom.SQL">Rezoom.SQL ★ 7 ⧗
0</a> - Statically typed SQL for F#. [MIT]</li>
<li><a href="https://github.com/fsprojects/S3Provider">S3Provider ★ 16 ⧗
379</a> - Experimental type provider for Amazon S3. [MIT]</li>
<li><a href="https://github.com/fsprojects/SQLProvider">SQLProvider ★
192 ⧗ 7</a> - General F# SQL database erasing type provider, supporting
LINQ queries, schema exploration, individuals, CRUD operations and much
more besides. [Apache 2.0]</li>
<li><a
href="https://github.com/fsprojects/SwaggerProvider">SwaggerProvider ★
81 ⧗ 3</a> - F# generative Type Provider for Swagger. [Unilicense]</li>
</ul>
<h3 id="creating-type-providers">Creating type providers</h3>
<ul>
<li><a
href="https://github.com/fsprojects/FSharp.TypeProviders.StarterPack">FSharp.TypeProviders.StarterPack
★ 104 ⧗ 42</a> - The ProvidedTypes SDK for creating F# type providers.
[Apache 2.0]</li>
<li><a href="https://github.com/fsprojects/RestProvider">RestProvider ★
14 ⧗ 258</a> - Create type providers just by implementing a simple REST
service. [Apache 2.0]</li>
</ul>
<h2 id="visualization">Visualization</h2>
<ul>
<li><a
href="https://github.com/fslaborg/FSharp.Charting">FSharp.Charting ★ 186
⧗ 0</a> - Charting library suitable for interactive F# scripting.
[MIT]</li>
<li><a href="https://github.com/ChrisNikkel/SharpVG">SharpVG ★ 32 ⧗
0</a> - Create SVG vector graphics in F#. [MIT]</li>
<li><a href="https://github.com/fslaborg/XPlot">XPlot ★ 173 ⧗ 0</a> - A
plotting library for the F# programming language. [Apache 2.0]</li>
<li><a href="https://github.com/pablofrommars/GGNet">GG.Net</a> -
Visualization library for data scientists. [MIT]</li>
<li><a href="https://github.com/plotly/Plotly.NET">Plotly.NET</a> - A
Plotly-based general purpose plotting library for F#. [MIT]</li>
</ul>
<h2 id="web-frameworks">Web frameworks</h2>
<ul>
<li><a href="https://github.com/fsbolero/Bolero/">Bolero ★ 629</a> - F#
in WebAssembly, develop SPAs with the full power of F# and .NET Blazor.
[Apache 2.0]</li>
<li><a href="https://github.com/pimbrouwers/Falco/">Falco</a> - A
functional-first toolkit for building brilliant ASP.NET Core
applications using F#.</li>
<li><a href="https://github.com/cmeeren/Felicity">Felicity</a> -
Boilerplate-free, idiomatic JSON:API for your beautiful, idiomatic F#
domain model. Optimized for developer happiness. [MIT]</li>
<li><a href="https://github.com/xyncro/freya">Freya ★ 241 ⧗ 7</a> -
Modern, purely functional stack for web programming in F#. [Apache
2.0]</li>
<li><a href="https://github.com/lefthandedgoat/genit">Genit ★ 62 ⧗ 1</a>
- Cross-platform website generator and server using F#, Suave and
PostgreSQL or MS SQL Server.</li>
<li><a href="https://github.com/giraffe-fsharp/Giraffe">Giraffe ★ 526 ⧗
49</a> - Native functional ASP.NET Core web framework for F# developers.
[Apache 2.0]</li>
<li><a href="https://github.com/SaturnFramework/Saturn">Saturn ★ 62 ⧗
2</a> - Opinionated, web development framework for F# which implements
the server-side, functional MVC pattern. [MIT]</li>
<li><strong><a href="https://github.com/SuaveIO/suave">Suave ★ 756 ⧗
2</a></strong> - 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]</li>
<li><a href="https://github.com/intellifactory/websharper">WebSharper ★
270 ⧗ 7</a> - F#-based web programming platform including a compiler
from F# code to JavaScript. [Apache 2.0]</li>
</ul>
<h2 id="net-core-templates">.Net Core Templates</h2>
<ul>
<li><a
href="https://github.com/MNie/FSharpNetCoreWebApiTemplate">ASP.NET Core
WebAPI F# Template</a>
<code>dotnet new -i WebAPI.FSharp.Template::*</code></li>
<li><a href="https://github.com/MNie/Expecto.Template">Expecto
Template</a> <code>dotnet new -i Expecto.Template::*</code></li>
<li><a href="http://fable.io">Fable, F# |&gt; Babel</a>
<code>dotnet new -i Fable.Template::*</code></li>
<li><a
href="https://github.com/fable-compiler/fable-elmish">Fable-elmish</a>
<code>dotnet new -i Fable.Template.Elmish.React::*</code></li>
<li><a href="https://freya.io">Freya</a>
<code>dotnet new --install Freya.Template::*</code></li>
<li><a href="https://github.com/giraffe-fsharp/giraffe-template">Giraffe
Template</a> (Quick install:
<code>dotnet new -i "giraffe-template::*"</code>)</li>
<li><a
href="https://github.com/TheAngryByrd/MiniScaffold">MiniScaffold</a>
<ul>
<li>F# Template for creating and publishing libraries targeting .NET
Full (net45) and Core (netstandard1.6)</li>
<li><code>dotnet new -i MiniScaffold::*</code></li>
</ul></li>
<li><a href="https://github.com/MNie/NancyFxCore">NancyFx Template</a>
<code>dotnet new -i NancyFx.Core.Template::*</code></li>
<li><a href="https://github.com/SAFE-Stack/SAFE-template">SAFE Stack
Template</a> <code>dotnet new -i SAFE.Template::*</code></li>
<li><a href="https://github.com/vbfox/FSharpTemplates">vbfoxs F#
Templates</a>
<ul>
<li>F# Template for creating github project with appveyor and travis
support</li>
</ul></li>
</ul>
<h2 id="resources">Resources</h2>
<h3 id="blogs">Blogs</h3>
<ul>
<li><a href="https://devblogs.microsoft.com/dotnet/tag/f/">.NET Blog (F#
tag)</a></li>
<li><a href="http://codesuji.com">Codesuji</a></li>
<li><a href="http://kcieslak.io/">Krzysztof Cieslak</a></li>
<li><a href="http://blog.ploeh.dk/">Mark Seemann</a></li>
<li><a href="https://sergeytihon.wordpress.com/">Sergey Tihon (F#
Weekly)</a></li>
<li><a href="http://tomasp.net/blog/">Tomas Petricek</a></li>
</ul>
<h3 id="books">Books</h3>
<ul>
<li><a href="https://www.manning.com/books/f-sharp-in-action">F# in
Action</a></li>
</ul>
<h3 id="cheatsheets">Cheatsheets</h3>
<ul>
<li><a href="http://fsprojects.github.io/fsharp-cheatsheet/">F#
cheatsheet</a></li>
<li><a href="http://fssnip.net/">F# Snips</a></li>
<li><a
href="https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tour">F#
tour</a></li>
<li><a href="https://learnxinyminutes.com/docs/fsharp">Learn F# in Y
minutes</a></li>
</ul>
<h3 id="community">Community</h3>
<ul>
<li><a href="https://forums.fsharp.org/">F# on Discourse</a></li>
<li><a href="https://github.com/fsharp/">F# on Github</a></li>
<li><a href="http://webchat.freenode.net/?channels=%23%23fsharp">F# on
IRC</a></li>
<li><a href="http://fsharp.org/guides/slack/">F# on Slack</a></li>
<li><a href="https://t.me/fsharp_news">F# news on Telegram</a></li>
</ul>
<h3 id="other-lists">Other Lists</h3>
<ul>
<li><strong><a href="https://github.com/quozd/awesome-dotnet">Awesome
.NET! ★ 4458 ⧗ 2</a></strong> - Collection of awesome .NET libraries,
tools, frameworks and software. [CC0 1.0]</li>
<li><a href="https://github.com/kunjee17/awesome-fable">Awesome
Fable</a> - Curated list of useful Fable tutorials, libraries and
software. [CC0 1.0]</li>
<li><a href="http://fsharp.org/community/projects/">F# Community
Projects</a> - FSharp community projects</li>
<li><a href="https://fsharpforfunandprofit.com/">F# for fun and
profit</a></li>
<li><a href="https://wtfsharp.net">WTF#</a> - podcast focused on F# and
its ecosystem</li>
</ul>
<h3 id="websites">Websites</h3>
<ul>
<li><a href="http://c4fsharp.net/">Community for F#</a> - Links to dojos
and recordings of community presentations.</li>
<li><a href="https://jindraivanek.gitlab.io/cs2fs-online">cs2fs</a> -
Transform C# code to F# code</li>
<li><a href="https://www.decompiler.com/">Decompiler.com</a> - Online
C#/VB/F# decompiler</li>
<li><a href="https://dotnetfiddle.net/">DotNetFiddle</a> - Online
REPL</li>
<li><a href="http://fsharp.github.io/">F# Core Engineering</a></li>
<li><a href="https://fsharpforfunandprofit.com/">F# for Fun and
Profit</a> - Reference tutorials</li>
<li><a href="http://fsharp.org/">F# Software Foundation</a> - Main
website</li>
<li><a
href="https://fsprojects.github.io/fantomas-tools">fantomas-tools</a> -
A set of Fantomas related tools like AST viewer and online bug
reporter.</li>
<li><a href="https://sharplab.io/">SharpLab</a> - C#/VB/F# compiler
playground.</li>
<li><a href="http://www.tryfsharp.org">Try F#</a> - Online tutorials,
currently without execution of code due to Silverlight dependency</li>
</ul>
<h3 id="videos">Videos</h3>
<ul>
<li><a
href="http://usergroup.tv/videos/category/group/austin-f-meetup">Austin
F# Meetup Group Recorded Presentations</a></li>
<li><a
href="https://www.youtube.com/watch?v=1ioGr701c5Q&amp;list=PLqWncHdBPoD4YEWoXQlRj1tiTc96HZxH8">Intro
to F#</a></li>
<li><a
href="https://www.youtube.com/watch?v=KMR2y1vcO-s&amp;list=PLqWncHdBPoD4-d_VSZ0MB0IBKQY0rwYLd">Fast
Dictionary in F#</a></li>
<li><a
href="https://www.youtube.com/watch?v=EIBRoNEpg6c&amp;list=PLqWncHdBPoD4O1sr2Q3W9gAuJ30s09U2r">F#
Chats on performance</a></li>
<li><a
href="https://www.youtube.com/playlist?list=PLqWncHdBPoD5hEK31CcfmTHP-7icw2Xd0">Topological
Sort</a></li>
</ul>
<h3 id="courses">Courses</h3>
<ul>
<li><a href="https://www.udemy.com/course/data-programming-with-f/">Data
programming with F#</a></li>
<li><a href="http://www.fsharpworkshop.com/">F# workshop</a></li>
<li><a
href="https://fsharp.tv/courses/fsharp-programming-intro/">Introduction
to F#</a></li>
<li><a href="https://write-yourself-a-scheme.pangwa.com/">Write yourself
a scheme in 48 hours using F#</a></li>
</ul>