F# Community Projects
Do you want to contribute to F# commmunity projects? We encourage all efforts which support our mission. Some of the open community projects you can contribute to are below.
These projects may be at an early stage, and are not necessarily appropriate for production use. Out of small beginnings, great things come! To add a project to this list edit this page and submit a pull request.
Tags: Compiler, Editing, Dev Tools, Data Access, Data Science, Visualization, Functional Programming, Text Programming, Interop, Parsing, Testing, Cloud, Distribution, Async/Parallel, Scripting, Web, Financial, Desktop UI, Mobile, Math, Text Search, Metaprogramming, Literate programming, Audio Processing
Community Projects: Other Catalogs
- Awesome F# - A curated list of awesome F# frameworks, libraries, software and resources.
Community Projects: Compiler and Core Library
-
dotnet/fsharp - The F# Compiler and Core Library. See also Contributing to the F# Language and Compiler.
-
fsharp/FSharp.Compiler.Service - The F# Compiler, F# Interactive scripting engine and F# editing services as a component library.
Community Projects: Editing Tools
-
Visual F# Tools - The IDE tools for F# that are part of Visual Studio. Contributions welcome!
-
Ionide - The Visual Studio Code plugin for F# development
-
Visual Studio for Mac - The F# editing support in Visual Studio for Mac and MonoDevelop.
-
FsAutoComplete - F# command line tool run as background process to serve information for editor tools such as Emacs, Vim, Sublime Text, Atom and VS Code
-
Fantomas - F# source code formatter
Community Projects: Literate Programming, Notebooks and Documentation
-
.NET Interactive - .NET Interactive takes the power of .NET and embeds it into your interactive experiences. Share code, explore data, write, and learn across your apps in ways you couldn’t before.
-
iFSharp - IfSharp is an F# implementation for Jupyter notebooks.
-
FSharp.Formatting - F# tools for generating documentation: Markdown processor and F# code formatter
-
FSDN - FSDN is a web application that uses F# API Search library. F# API Search library supports the standard signature of F# with some extentions. This document describes the F# API Search library specific formats.
Community Projects: Development Tools
-
Paket - A package dependency manager for .NET with support for NuGet packages and GitHub repositories
-
F# Type Provider SDK - Learning materials and code only NuGet package for writing type providers
-
FAKE - F# build automation system
-
FSharpLint - A lint tool for F#.
-
F# SonarQube Plugin - F# support for SonarQube.
Community Projects: Functional Programming
-
Streams - A lightweight F#/C# library for efficient functional-style pipelines on streams of data.
-
LinqOptimizer - An automatic query optimizer-compiler for Sequential and Parallel LINQ. LinqOptimizer compiles declarative LINQ queries into fast loop-based imperative code. The compiled code has fewer virtual calls and heap allocations, better data locality and speedups of up to 15x (Check the Performance page).
-
FSharpx.Collections - A set of functional programming collections for F#.
-
Aether - An optics (lenses, prisms, morphisms) library for F# that enables powerful ways of working with data structures.
-
F# Snippets - A community-contributed catalog of F# Snippets
Community Projects: Text Programming
- FSharp.Text.RegexProvider - A type provider for regular expressions.
Community Projects: Data Access
-
F# Data - A library of F# type providers and data access tools. Contributions welcome!
-
WorldBank Provider - Makes the WorldBank data easily accessible to F# programs and scripts in a type safe way, which has a data catalog of over 8000 development indicators and other data about countries in the world.
-
CSV Type Provider - Read CSV files in a statically typed way.
-
HTML Type Provider - Work with tables and lists in HTML files in a statically typed way.
-
JSON Type Provider - Access JSON files in a statically typed way.
-
XML Type Provider - Access XML documents in a statically typed way.
-
-
FSharp.Data.Toolbox - F# Data-based library for various data access APIs, includes a Twitter access package.
-
Chiron - A library for functional JSON in F#, including parsing, formatting, serialization and deserialization (through explicit object mapping), and working effectively with complex JSON data.
-
Apiary Provider - A type provider that makes it possible to easily call REST services that are documented using the apiary.io service.
-
FSharp.Data.SqlClient - use SQL to specify queries, explore Stored Procedures, User Defined Types and Functions with auto-complete right in your F# code.
-
FSharp.Linq.ComposableQuery - A Compositional Query Framework for F# Queries, based on “A Practical Theory of Language-Integrated Query”
-
SQLProvider - A general SQL type provider, supporting LINQ queries, schema exploration, stored procedures, individuals. Currently supports MS SQL Server, MS Access, SQLite, PostgreSQL, Oracle and MySQL.
-
DynamicsNAVProvider - A Microsoft Dynamics NAV type provider, supporting LINQ queries, schema exploration, individuals.
-
DynamicsCRMProvider - A type provider for Microsoft Dynamics CRM 2011/2013.
-
S3 Type Provider - An experimental type provider for Amazon S3.
-
Azure Storage Type Provider - A type provider for Azure Storage assets e.g. Blobs and Tables.
-
FSharp.Data.HiveProvider - An F# type provider for writing simple Hive/Hadoop queries. Contributions welcome!
-
DAXIF# - Delegate Automated Xrm Installation Framework - A set of tools that in combination with other Microsoft Tools, make it easier to work with Microsoft Dynamics CRM/xRM on a daily basis, also for developers who are not familiar with the platform.
-
SqlFun - An SQL database access library. Supports direct SQL calls, automatic CRUD operations, stored procedures, collection parameters and complex result structures. Allows to define custom query DSL-s. Type safe and idiomatically functional.
-
Donald - An idiomatic F# interface for ADO.NET.
Community Projects: Data Science Programming
-
FsLab - 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.
-
Deedle - Deedle is an open, easy to use library for data and time series manipulation and for scientific programming. It supports working with structured data frames, ordered and unordered data, as well as time series. Deedle is designed to work well for exploratory programming using F# and C# interactive console, but can be also used in efficient compiled .NET code.
-
The MATLAB Type Provider for F# - An F# type provider for higher-fidelity integration between F# and MATLAB. Early stages. Contributors and reviewers welcome.
-
The Python Type Provider for F# (experimental) - Python type provider for F#.
-
Vulpes - A machine learning app using a deep belief network and connecting to the NVIDIA GPU unit using [Alea.cuBase] (http://blog.quantalea.net/).
Community Projects: Visualization Tools
-
XPlot - XPlot is a data visualization package for the F# programming language powered by popular JavaScript charting libraries. It uses Google and Plotly’s powerful and free data visualization libraries based on HTML5/SVG technology. You can access the HTML for the charts programatically and use the library from F# Interactive by displaying browser windows.
-
XPlot - XPlot is a data visualization package for the F# programming language powered by popular JavaScript charting libraries. It uses Google and Plotly’s powerful and free data visualization libraries based on HTML5/SVG technology. You can access the HTML for the charts programatically and use the library from F# Interactive by displaying browser windows.
-
Plotly.NET - a powerful and free charting library. Plotly.NET provides Plotly’s awesome graphing support with strongly typed style options for F#.
Community Projects: Math Libraries
-
Math.NET Numerics - A large collection of algorithms including linear algebra, special functions, statistics, probability models, interpolation and FFTs. Supports F# 3.0+ with idiomatic extension modules.
-
FSharp.Numerics.FuzzyIntervals - A basic math library of fuzzy and interval calculus with examples
-
DiffSharp - An automatic differentiation (AD) library for exact and efficient calculation of derivatives (gradients, Hessians, Jacobians, directional derivatives, and matrix-free Hessian- and Jacobian-vector products). Also includes symbolic and numerical differentiation.
-
FsAlg - A lightweight linear algebra library supporting generic types.
-
Flips - An F# library for modeling and solving Linear Programming (LP) and Mixed-Integer Programming (MIP) problems.
Community Projects: Mobile Programming
-
Fabulous - Allows you to use the Elm architecture (Redux/Flow/MVU), to build Xamarin.Forms applications for iOS, Android, Mac and more
-
Fable + React Native - Allows you to use Fable + React Native to write mobile applications
Community Projects: Client User Interfaces
-
Interstellar - A library that enables the creation of cross-platform browser-based applications. It abstracts around various different browser APIs, so your application can use either Chromium or Apple WebKit.
-
FsXaml - F# Tools for working with XAML Projects
-
FSharp.Desktop.UI - A community framework to take advantage of the F# language features to create truly type-safe WPF applications.
-
FSharp.ViewModule - Type provider to generate an MVVM style ViewModel directly from an idiomatic F# module.
Community Projects: Financial Calculations and Data
-
ExcelFinancialFunctions - Excel Financial functions, implemented in F#, with a high degree of conformance testing.
-
Spreads - Spreads is an ultra-fast library for complex event processing and time series manipulation. Spreads is a library, not a framework, and could be plugged into existing code bases and used immediately. Even though the primary domain is financial data, Spreads is designed as a generic complex event processing library.
-
The Xenomorph Provider for F# - Connects F# to Xenomorph TimeScape(TM) using a type provider.
Community Projects: Web Tools
-
Suave - 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.
-
WebSharper - WebSharper is an F#-based web programming platform including a compiler from F# code to JavaScript. Primary contributors are IntelliFactory, it is open source and on GitHub. Contributors welcome!
-
Fable is an F# to JS compiler designed to generate clean and standard code in order to maximize interoperability in both ways. It integrates with most of JS development pipelines like Babel, Webpack or React Hot Loader. Fable allows you develop not only web apps but also node.js, desktop with Electron or mobile with React native.
-
Fracture I/O - High performance sockets library.
-
Fracture.Http - HTTP server built on Fracture I/O.
-
Frank - Frank provides a functional wrapper around the types in System.Net.Http, the library used by ASP.NET Web API.
-
Freya - F# support for OWIN. Freya is a functional web stack, built on top of OWIN, that offers additional layers for constructing OWIN pipelines, types based on relevant RFC definitions, a router, and an HTTP finite state machine abstraction similar to that found in webmachine.
-
FsBlog - A blog aware, static site generation using F#. Inpired by the likes of Jekyll and Octopress.
-
Firm - A blog aware, static site generation using F#. It supports stand-alone pages, blog posts, rss, tags (tag cloud) and post archive. Templates are written in Razor. Posts and pages are written in Markdown.
-
Nini - A micro web framework for DNX (ASP.NET vNext).
-
Falco - A functional micro-library for building brilliant ASP.NET Core applications using F#. Low barrier to entry for those new to functional programming.
-
Interstellar - A library that enables the creation of cross-platform browser-based applications. It abstracts around various different browser APIs, so your application can use either Chromium or Apple WebKit.
Community Projects: Scripting & Configuration
-
FSharp.Management - The FSharp.Management project contains various type providers for the management of the machine.
-
PowerShellTypeProvider - PowerShell type provider.
-
FileSystemTypeProvider - It allows to browse your file system via autocomplete and provides compile time checks for directories and files.
-
WMITypeProvider - Typed access to WMI.
-
RegistryTypeProvider - Typed access to the Registry.
-
-
FSharp.Configuration - The FSharp.Configuration project contains type providers for the configuration of .NET projects.
-
AppSettingsTypeProvider - AppSettings type provider.
-
ResXTypeProvider - Typed access to .resx files.
-
YamlTypeProvider - Typed access to Yaml.
-
- Stellar - Typed access to the Windows Azure Management REST APIs.
Community Projects: Asynchronous, Concurrent and Parallel Programming
-
F# Parallel Sequences. This component provides F#-style API for parallel operations on sequences that are part of .NET 4.0 as System.Linq.ParallelEnumerable class. The API is akin to F# operations on sequences.
-
FSharp.Control.Reactive. F#-style modules for working with the Reactive Extensions (Rx) as a set of extensions to the built-in Observable module. The library includes observe and rxquery computation expressions, as well.
-
Cricket. Cricket is an actor library for F#. The actor programming model is inherently concurrent, an actor is a primitive that wraps a computation, the computation is ran by sending messages to the actor. The actor can then respond to the reciept of the message by executing one or more of the following actions (possibly concurrently).
-
FusionTasks. F# Async workflow <–> .NET Task easy seamless interoperability library.
Community Projects: Distribution Tools
-
f0 - A binary [de]serialization combinator library, with binary-format phantom types and a compatible Scala partner implementation.
-
FsPickler - A fast, general-purpose binary serializer for .NET written in F# that doubles as a pickler combinator library.
-
Vagabond - A library for distributing dynamic assemblies.
-
Filbert - A simple BERT serializer and BERT-RPC client for .Net written in F#.
-
Akka.NET - .NET community port of the Java/Scala framework Akka.
-
fszmq - a binding to the ZeroMQ distributed computing library for F# (and other CLR languages).
-
Ractor.CLR - Redis based distributed actors system.
Community Projects: Cloud Tools
-
Amazon.SimpleWorkflow.Extensions Extension to Amazon SDK’s SimpleWorkflow capabilities to make it more intuitive to use
-
DynamoDB.SQL SQL-like external DSL for querying and scanning Amazon DynamoDB
-
Fog - Fog brings the cloud down to earth and wraps it in something more easily used by F#. It provides a more functional approach to creating Windows Azure apps with F#.
-
FSharp.Azure - FSharp.Azure provides an idiomatic F# API to query and modify data in Azure table storage using immutable F# record types.
-
S3 Type Provider - An experimental type provider for Amazon S3.
-
Azure Storage Type Provider - A type provider for Azure Storage assets e.g. Blobs and Tables.
-
FsDecider F# computation expression builder for AWS Simple Workflow deciders.
Community Projects: Testing Tools
-
FSharpTest - NUnit Visual Studio Project template with sample failing tests in FsUnit, FsCheck, and Unquote.
-
FsUnit - Add F# functional syntax to NUnit, xUnit, and MsTest.
-
FsCheck - Random testing generator combinators, port of Haskell’s QuickCheck.
-
Foq - A lightweight thread-safe mocking library for F#, C# & VB.Net. Use Foq to mock abstract classes and interfaces.
-
AutoFixture.AutoFoq - A library which turns AutoFixture into an Auto-mocking Container where the mock instances are created by Foq.
-
Unquote - F# unit test assertions as quoted expressions and step-by-step failure messages.
-
canopy - F#rictionless web testing with Selenium.
-
TickSpec A lightweight F# Behaviour Driven Development (BDD) framework
-
FSpec A context/specification testing framework for F#
-
AntaniXml Random generator of XML from XSD, based on FsCheck
Community Projects: Metaprogramming
-
Unquote - Includes a fast quotations evaluator
-
FSharp.Quotations.Evaluator - An evaluator for F# quotations
Community Projects: Parsing and Compiler Tools
-
FsLex and FsYacc FsLex and FsYacc implementations for F#. Contributions welcome.
-
FParsec A parser combinator library for F#
-
ParsecClone A fparsec subset clone that works on generalized stream classes
-
YaccConstructor Platform for grammarware research and development
-
YC.PrettyPrinter Printer combinators library
-
LLVM-FS - LLVM bindings for F#
-
Farkle - LALR parsing with combinator-like objects for F# and C#.
Community Projects: Text Search Tools
-
FlexSearch Flexible and fast open source F# based Search Engine
-
MITIE-Dot-Net - A Nice .NET Wrapper for the MITIE Information Extraction Library (Written in F#, but fully C# compatible)
Community Projects: Simulation Tools
-
Aivika for .NET - A simulation library for discrete event simulation, system dynamics and agent-based modeling.
-
F# RISC-V Instruction Set formal specification - RISC-V CPU formal ISA Specification. RISC-V CPU simulator with ELF files execution and CLI support. [MIT]
Community Projects: Audio Processing
- FSound - A sound processing library written in F#