Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. F#
  3. FsPickler

FsPickler

MITF#5.3.2

A fast, multi-format .NET serialization library with comprehensive type support, including F# types.

Visit WebsiteGitHubGitHub
327 stars49 forks0 contributors

What is FsPickler?

FsPickler is a fast multi-format message serializer for .NET that facilitates the distribution of .NET objects. It focuses on performance and completeness in supported types, including F# types, and supports pluggable serialization formats like Binary, XML, JSON, and BSON. The library solves the problem of efficiently serializing complex .NET type graphs across different formats.

Target Audience

.NET developers, especially those using F#, who need high-performance serialization with broad type support. It is also suitable for projects requiring flexible format choices (e.g., Binary for speed, JSON for interoperability).

Value Proposition

Developers choose FsPickler for its combination of speed, comprehensive type support (including F#-specific types), and multi-format flexibility. Its unique pickler combinators approach, adapted from functional programming, provides a robust and extensible foundation not commonly found in other .NET serializers.

Overview

A fast multi-format message serializer for .NET

Use Cases

Best For

  • Serializing F# types (e.g., discriminated unions, records) in .NET applications
  • High-performance binary serialization for .NET object graphs
  • Applications requiring interchangeable serialization formats (Binary, JSON, XML, BSON)
  • Distributing .NET objects across services or processes
  • Scenarios where type completeness and correctness are critical
  • Projects leveraging functional programming concepts in .NET

Not Ideal For

  • Projects requiring simple JSON serialization for REST APIs without complex .NET type graphs
  • Teams that prioritize ease of use and minimal configuration over performance and type completeness
  • Environments where serialization must be interoperable with non-.NET languages without additional adaptation

Pros & Cons

Pros

Multi-format Flexibility

Supports pluggable formats like Binary, XML, JSON, and BSON, allowing developers to switch based on use case, as highlighted in the README's key features.

F#-focused Type Handling

Comprehensively supports F# types such as discriminated unions and records, making it ideal for F# projects, as emphasized in the description.

High Performance

Optimized for speed in serialization and deserialization, with benchmarks available for .NET Core, confirming its efficiency focus.

Extensible via Combinators

Based on pickler combinators adapted from functional programming, enabling custom serialization logic for complex type graphs, as described in the philosophy.

Cons

Steeper Learning Curve

The functional programming approach and pickler combinators require more understanding and setup than conventional .NET serializers, which can deter newcomers.

Limited Ecosystem Integration

Compared to mainstream serializers like Newtonsoft.Json, FsPickler has fewer third-party libraries and community resources, potentially increasing development time.

Potential Overhead for Simple Cases

For basic serialization needs, the comprehensive feature set might introduce unnecessary complexity and configuration, as noted in the focus on performance and type completeness.

Frequently Asked Questions

Quick Stats

Stars327
Forks49
Contributors0
Open Issues17
Last commit4 years ago
CreatedSince 2013

Tags

#bson#binary-serialization#dotnet#json-serialization#xml#serialization#binary#json#fsharp#xml-serialization#performance

Built With

.
.NET

Links & Resources

Website

Included in

F#1.4k
Auto-fetched 18 hours ago

Related Projects

FSharp.SystemTextJsonFSharp.SystemTextJson

System.Text.Json extensions for F# types

Stars367
Forks48
Last commit4 months ago
FSharp.JsonFSharp.Json

F# JSON Reflection based serialization library

Stars227
Forks25
Last commit1 year ago
FleeceFleece

Json mapper for F#

Stars204
Forks30
Last commit3 years ago
FsCodecFsCodec

F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json

Stars82
Forks18
Last commit6 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub