Giter VIP home page Giter VIP logo

awesome-fsharp's Introduction

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

  • FIO - A type-safe, highly concurrent and asynchronous library for F# based on pure functional programming [GNU v3]
  • 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]
  • 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]
  • 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

  • altcover ★ 139 ⧗ 0 - Cross-platform coverage gathering and processing tool set for .net/.net core and Mono. [MIT]
  • canopy ★ 304 ⧗ 2 - F# web automation and testing framework. [MIT]
  • Expecto ★ 124 ⧗ 2 - Smooth testing framework for F# with tests-as-values and parallelism by default. [Apache 2.0]
  • Faqt - Fantastic fluent assertions for your F# tests and domain code. [MIT]
  • FsCheck ★ 415 ⧗ 34 - Random Testing for .NET. [BSD-3-Clause]
  • fsharp-hedgehog ★ 42 ⧗ 4 - Property-based testing system for F#. [Apache 2.0]
  • FsUnit ★ 340 ⧗ 86 - FsUnit makes unit-testing with F# more enjoyable. It adds a special syntax to your favorite .NET testing framework. [MIT]
  • NBomber ★ 14 ⧗ 23 - simple load testing framework for Pull and Push scenarios. [Apache 2.0]
  • Persimmon ★ 29 ⧗ 9 - Unit test framework for F# using computation expressions. [MIT]
  • unquote ★ 88 ⧗ 17 - Write F# unit test assertions as quoted expressions. [Apache 2.0]
  • xUnit.net - Free, open source, community-focused unit testing tool for the .NET Framework. [Apache 2.0]

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

awesome-fsharp's People

Contributors

0x6a62 avatar 7sharp9 avatar aaronpowell avatar algunion avatar baronfel avatar captncodr avatar cmeeren avatar eugene-g avatar foggyfinder avatar happypig375 avatar humhei avatar inchingforward avatar mangelmaxime avatar mariabat avatar mnie avatar moodmosaic avatar neftedollar avatar nightroman avatar pablofrommars avatar panesofglass avatar pmbanka avatar quintusm avatar ryanchapman avatar seng-jik avatar shalokshalom avatar simonverhoeven avatar strikerrus avatar tforkmann avatar vasily-kirichenko avatar vpashkov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-fsharp's Issues

Remove dead projects

Some projects without recent commits. (for over 1 year)
No make sense have dead projects repositories

Adding OctoLinker to the list

Before creating a PR I wanted to see if it was appropriate to add the OctoLinker browser extension to this list?

I've been adding a bunch of .net support to it recently and it currently supports *.fsproj, *.props & *.targets files for linked files & package references along with some other msbuild/nuget related files. Tomorrow's release (October 7th) will add support for Paket files, and a pending PR adds support for .net scripting (scriptcs, Cake, and Fake).

Find a new maintainer

I'm no longer able to continue to maintain this project and looking for somebody to replace me.
I can suggest @Neftedollar as a replacement.
He is willing and capable to do it.
@fsprojects can someone to add @Neftedollar as a maintainer of this repository?

Please add Oxpecker to the Web frameworks section

[About]

https://github.com/Lanayx/Oxpecker
ASP.NET Core based F# framework

[Description]

Oxpecker is a functional wrapper around ASP.NET Core Endpoint routing. Repository contains both main project and other related packages.

This library is basically a revised version of Giraffe, it mostly sticks to Giraffe's successful API (hence the name). Improvements involve changing some core types, performance of template handlers, simplifying handlers and dropping a lot of outdated functionality.

Medium introductory post: https://medium.com/@lanayx/the-oxpecker-ef9df3dfb918

Oxpecker project is planned to be moved to fsprojects organization once it reaches 200 stars

[Features]

Native ASP.NET Core Endpoint routing integration
ViewEngine with convenient DSL for HTML
Strongly typed route parameters
Endpoint handlers and endpoint middlewares, flexible composition
JSON binding and serialization
Form binding
URL parameters binding
Response caching
Streaming
Authorization
eTag support
IResult support
Many useful HttpContext extensions

Feliz?

I think Feliz is the most widely used web framework, but missing in the list.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.