Awesome
FSharpLu F# library
This library provides F# lightweight utilities for string manipulations, logging, collection data structures, file operations, text processing, security, async, parsing, diagnostics, configuration files and Json serialization.
This is by no means a full-fledged utility library for F#, but rather a small collection of utilities and other thin wrappers accumulated throughout the development of various internal projects at Microsoft and meant to facilitate development with the .Net framework using the F# programming language.
Some of the provided utilities are just thin let
-bindings wrappers around existing .Net libraries (e.g. module FSharpLu.Text
or FSharpLu.Parsing
) whereas some provide additional features (e.g. Json serialization in module FSharpLu.Json
).
Build status
Branch | Status |
---|---|
main |
Build requirements
-
F# compiler. See https://fsharp.org/use/Windows and https://fsharp.org/use/linux/
-
Install .NET Core SDK 6.0 from https://dotnet.microsoft.com/download/visual-studio-sdks.
To build project run dotnet build
under the top-level directory or run the script scripts\build.ps1
.
Documentation
For the documentation please visit the Wiki
License
Packages
FSharpLu
: The core set of utilitiesFSharpLu.Json
: Json serialization of F# data types implemented as JSon.Net converters and providing more succinct serialization for option types and discriminate unions.FSharpLu.Windows
: Windows-specific utility functionsFSharpLu.Azure
: Azure Resource Manager helpers- Test libraries
FSharpLu.*.Tests
: Unit tests for a specific module
FSharpLu modules
Here is a list of helper modules provided by FSharpLu.
Main module
- FSharpLu.Async
- FSharpLu.AsyncSeq
- FSharpLu.CacheMap
- FSharpLu.Configuration
- FSharpLu.Collection
- FSharpLu.Diagnostics
- FSharpLu.Disposable
- FSharpLu.ErrorHandling
- FSharpLu.ExecutableInfo
- FSharpLu.File
- FSharpLu.FSharpFromCSharp
- FSharpLu.Ini
- FSharpLu.Logger
- FSharpLu.MachineOperations
- FSharpLu.Option
- FSharpLu.Parsing
- FSharpLu.Platform
- FSharpLu.QueueScheduler
- FSharpLu.Security
- FSharpLu.ServiceRequest
- FSharpLu.StateMachine
- FSharpLu.Sysprep
- FSharpLu.Text
- FSharpLu.TraceLogging
Json
Azure
Windows
- FSharpLu.Windows.Hyperv
- FSHarpLu.Windows.Security
- FSHarpLu.Windows.Certificate
- FSHarpLu.Windows.Registry
- FSHarpLu.Windows.TraceLoggingConsole
- FSHarpLu.Windows.Smb
- FSHarpLu.Windows.EtwListener
- FSHarpLu.Windows.DirectoryServices
- FSHarpLu.Windows.Wmi
- FSHarpLu.Windows.ManagementWin32
- FSHarpLu.Windows.ManagementHypervisor
- FSHarpLu.Windows.HyperV
Microsoft Open Source Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.