My go-to free open-source packages I use in devops projects. Highly recommended if you enjoy rapid prototyping and like getting stuff working quickly.
Suave ¶
Project site | Apache 2.0 license
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.
Suave is a swiss army knife for getting various types of APIs up and running without spending half a day digging through Microsoft documentation. It’s a set of low-level composable building blocks letting you put together a working thing.
Http.fs ¶
Project site | MIT license
A gloriously functional HTTP client library for F#
There isn’t much to say about this solid lib. It makes you calling REST APIs in no time.
FSharp.SystemTextJson ¶
Project site | MIT license
This library provides F# union and record support for System.Text.Json.
I know there is Chiron and FsPickler but I love the simplicity of FSharp.SystemTextJson. I’ve got the performance and the familiar API of System.Text.Json + an ability to control how my discriminated unions and records get serialized. It lets me model my solutions with F# types and make them serialize the way I want.
Argu ¶
Project site | MIT license
A declarative CLI argument parser for F#
In the light of command line interfaces having returned to the mainstream this lib is indispensable. It lets you model your CLI commands using idiomatic F# types (like records and unions).
Expecto ¶
Project site | Apache 2.0 license
A smooth testing lib for F#. APIs made for humans! Strong testing methodologies for everyone!
I strongly advocate the if it builds ship it approach (that’s why I use F# in the first place). But hey, we’re only humans and we write buggy code. Expecto helps me getting this side of the equation solved.
Non-F# packages ¶
Serilog ¶
Project site | Apache 2.0 license
Simple .NET logging with fully-structured events
I am not using Logary because of the weird licensing. Serilog on the other hand gives me all the logging features I need and no headache about whether I can use it in my projects or not.