René's URL Explorer Experiment


Title: GitHub - jet/FsCodec: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json

Open Graph Title: GitHub - jet/FsCodec: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json

X Title: GitHub - jet/FsCodec: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json

Description: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json - jet/FsCodec

Open Graph Description: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json - jet/FsCodec

X Description: F# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json - jet/FsCodec

Opengraph URL: https://github.com/jet/FsCodec

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:320a2a4f-6396-785a-b810-4af10416ae37
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idBB58:22277F:3C5C689:4F46E84:698C4FC7
html-safe-nonce293e182e2740fda86102f69ae42e07c2ef9730b84a305ace5c4a9df1abc3ab94
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCQjU4OjIyMjc3RjozQzVDNjg5OjRGNDZFODQ6Njk4QzRGQzciLCJ2aXNpdG9yX2lkIjoiODYwNTI4NzExMzI4NDE0NTA5NSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac46223813e4d086face69c6ee2e08ba86e17ba3a0651e26ef4d42dcfb861d936b
hovercard-subject-tagrepository:151720204
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/jet/FsCodec
twitter:imagehttps://opengraph.githubassets.com/837868d50bb8c2393ca2811c6524c28a2529f4011a65cd6bc022bb9e8ad3b70c/jet/FsCodec
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/837868d50bb8c2393ca2811c6524c28a2529f4011a65cd6bc022bb9e8ad3b70c/jet/FsCodec
og:image:altF# Event-Union Contract Encoding with versioning tolerant converters supporting System.Text.Json and Newtonsoft.Json - jet/FsCodec
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None640eeb7b6ff4d8d106235d228c0c286e82592d4d2403227b5b2b4fc5832297a4
turbo-cache-controlno-preview
go-importgithub.com/jet/FsCodec git https://github.com/jet/FsCodec.git
octolytics-dimension-user_id2504855
octolytics-dimension-user_loginjet
octolytics-dimension-repository_id151720204
octolytics-dimension-repository_nwojet/FsCodec
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id151720204
octolytics-dimension-repository_network_root_nwojet/FsCodec
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release3d444f0a47beeeac94cddbb51c91ab408befe8d4
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/jet/FsCodec#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjet%2FFsCodec
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fjet%2FFsCodec
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=jet%2FFsCodec
Reloadhttps://patch-diff.githubusercontent.com/jet/FsCodec
Reloadhttps://patch-diff.githubusercontent.com/jet/FsCodec
Reloadhttps://patch-diff.githubusercontent.com/jet/FsCodec
jet https://patch-diff.githubusercontent.com/jet
FsCodechttps://patch-diff.githubusercontent.com/jet/FsCodec
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fjet%2FFsCodec
Fork 18 https://patch-diff.githubusercontent.com/login?return_to=%2Fjet%2FFsCodec
Star 82 https://patch-diff.githubusercontent.com/login?return_to=%2Fjet%2FFsCodec
github.com/jet/dotnet-templateshttps://github.com/jet/dotnet-templates
Apache-2.0 license https://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/LICENSE
82 stars https://patch-diff.githubusercontent.com/jet/FsCodec/stargazers
18 forks https://patch-diff.githubusercontent.com/jet/FsCodec/forks
Branches https://patch-diff.githubusercontent.com/jet/FsCodec/branches
Tags https://patch-diff.githubusercontent.com/jet/FsCodec/tags
Activity https://patch-diff.githubusercontent.com/jet/FsCodec/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2Fjet%2FFsCodec
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fjet%2FFsCodec
Code https://patch-diff.githubusercontent.com/jet/FsCodec
Issues 7 https://patch-diff.githubusercontent.com/jet/FsCodec/issues
Pull requests 3 https://patch-diff.githubusercontent.com/jet/FsCodec/pulls
Actions https://patch-diff.githubusercontent.com/jet/FsCodec/actions
Security 0 https://patch-diff.githubusercontent.com/jet/FsCodec/security
Insights https://patch-diff.githubusercontent.com/jet/FsCodec/pulse
Code https://patch-diff.githubusercontent.com/jet/FsCodec
Issues https://patch-diff.githubusercontent.com/jet/FsCodec/issues
Pull requests https://patch-diff.githubusercontent.com/jet/FsCodec/pulls
Actions https://patch-diff.githubusercontent.com/jet/FsCodec/actions
Security https://patch-diff.githubusercontent.com/jet/FsCodec/security
Insights https://patch-diff.githubusercontent.com/jet/FsCodec/pulse
Brancheshttps://patch-diff.githubusercontent.com/jet/FsCodec/branches
Tagshttps://patch-diff.githubusercontent.com/jet/FsCodec/tags
https://patch-diff.githubusercontent.com/jet/FsCodec/branches
https://patch-diff.githubusercontent.com/jet/FsCodec/tags
269 Commitshttps://patch-diff.githubusercontent.com/jet/FsCodec/commits/master/
https://patch-diff.githubusercontent.com/jet/FsCodec/commits/master/
srchttps://patch-diff.githubusercontent.com/jet/FsCodec/tree/master/src
srchttps://patch-diff.githubusercontent.com/jet/FsCodec/tree/master/src
testshttps://patch-diff.githubusercontent.com/jet/FsCodec/tree/master/tests
testshttps://patch-diff.githubusercontent.com/jet/FsCodec/tree/master/tests
.editorconfighttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.editorconfig
.editorconfighttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.editorconfig
.gitattributeshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.gitattributes
.gitattributeshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.gitattributes
.gitignorehttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/.gitignore
CHANGELOG.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/CHANGELOG.md
CHANGELOG.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/CHANGELOG.md
Directory.Build.propshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/Directory.Build.props
Directory.Build.propshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/Directory.Build.props
Directory.Build.targetshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/Directory.Build.targets
Directory.Build.targetshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/Directory.Build.targets
FsCodec.slnhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/FsCodec.sln
FsCodec.slnhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/FsCodec.sln
FsCodec.sln.DotSettingshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/FsCodec.sln.DotSettings
FsCodec.sln.DotSettingshttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/FsCodec.sln.DotSettings
LICENSEhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/LICENSE
LICENSEhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/LICENSE
README.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/README.md
README.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/README.md
SECURITY.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/SECURITY.md
SECURITY.mdhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/SECURITY.md
azure-pipelines.ymlhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/azure-pipelines.yml
azure-pipelines.ymlhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/azure-pipelines.yml
build.projhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/build.proj
build.projhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/build.proj
global.jsonhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/global.json
global.jsonhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/global.json
READMEhttps://patch-diff.githubusercontent.com/jet/FsCodec
Apache-2.0 licensehttps://patch-diff.githubusercontent.com/jet/FsCodec
Securityhttps://patch-diff.githubusercontent.com/jet/FsCodec
https://dev.azure.com/jet-opensource/opensource/_build/latest?definitionId=18?branchName=master
https://github.com/jet/fscodec/releases
https://www.nuget.org/packages/FsCodec
https://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/LICENSE
applicationshttps://github.com/jet/dotnet-templates
Equinoxhttps://github.com/jet/equinox
Propulsionhttps://github.com/jet/propulsion
https://patch-diff.githubusercontent.com/jet/FsCodec#components
https://www.nuget.org/packages/FsCodec/
FsCodec.IEventCodechttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L19
FsCodec.Codechttps://github.com/jet/FsCodec/blob/master/src/FsCodec/Codec.fs#L5
FsCodec.StreamNamehttps://github.com/jet/FsCodec/blob/master/src/FsCodec/StreamName.fs
FsCodec.StreamIdhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/StreamId.fs
https://www.nuget.org/packages/FsCodec.Box/
FsCodec.Box.Codechttps://patch-diff.githubusercontent.com/jet/FsCodec#boxcodec
Equinox.MemoryStorehttps://www.fuget.org/packages/Equinox.MemoryStore
dependshttps://www.fuget.org/packages/FsCodec.Box
https://www.nuget.org/packages/FsCodec.NewtonsoftJson/
a scheme for the serializing Events modelled as an F# Discriminated Unionhttps://eiriktsarpalis.wordpress.com/2018/10/30/a-contract-pattern-for-schemaless-datastores/
TypeShapehttps://github.com/eiriktsarpalis/TypeShape
UnionContractEncoderhttps://eiriktsarpalis.wordpress.com/2018/10/30/a-contract-pattern-for-schemaless-datastores
Newtonsoft.Jsonhttps://github.com/JamesNK/Newtonsoft.Json
dependshttps://www.fuget.org/packages/FsCodec.NewtonsoftJson
https://www.nuget.org/packages/FsCodec.SystemTextJson/
#38https://github.com/jet/FsCodec/pulls/38
dependshttps://www.fuget.org/packages/FsCodec.SystemTextJson
https://patch-diff.githubusercontent.com/jet/FsCodec#features-fscodec
FsCodec.IEventDatahttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L4
FsCodec.ITimelineEventhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L23
FsCodec.IEventCodechttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L31
FsCodec.Codec.Createhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/Codec.fs#L27
FsCodec.Core.EventData.Createhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L44
FsCodec.Core.TimelineEvent.Createhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L58
https://patch-diff.githubusercontent.com/jet/FsCodec#features-fscodecnewtonsoftsystemtextjson
https://patch-diff.githubusercontent.com/jet/FsCodec#common-api
https://patch-diff.githubusercontent.com/jet/FsCodec#codec
FsCodec.NewtonsoftJson/SystemTextJson.Codechttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/Codec.fs
a scheme for the serializing Events modelled as an F# Discriminated Unionhttps://eiriktsarpalis.wordpress.com/2018/10/30/a-contract-pattern-for-schemaless-datastores/
https://patch-diff.githubusercontent.com/jet/FsCodec#converters-newtonsoftjsonconverters--systemtextjsonserializationjsonconverters
https://patch-diff.githubusercontent.com/jet/FsCodec#explicit-vs-implicit
recommendationshttps://patch-diff.githubusercontent.com/jet/FsCodec#recommendations
Equinox's module Aggregate documentationhttps://github.com/jet/equinox/blob/master/DOCUMENTATION.md#aggregate-module
https://patch-diff.githubusercontent.com/jet/FsCodec#this-set-might-be-all-you-need-
JsonIsomorphismhttps://patch-diff.githubusercontent.com/jet/FsCodec#jsonisimorphism
recommendationshttps://patch-diff.githubusercontent.com/jet/FsCodec#recommendations
Anti Corruption Layerhttps://docs.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layer
event versioninghttps://leanpub.com/esversioning
https://patch-diff.githubusercontent.com/jet/FsCodec#-but-dont-forget-fsharpsystemtextjson
Version 6 added support for F# options, lists, Set and Map out of the boxhttps://github.com/dotnet/runtime/pull/55108
removal of the JsonOptionConverter that once lived herehttps://github.com/jet/FsCodec/pull/68
open issue on the System.Text.Json repo wrt supporting F# Unionshttps://github.com/dotnet/runtime/issues/55744
the advice for FsCodec.NewtonsoftJson has always been to avoid stuff outside of records, options and arrayshttps://patch-diff.githubusercontent.com/jet/FsCodec#recommendations
FSharp.SystemTextJsonhttps://github.com/Tarmil/FSharp.SystemTextJson
In general, there should be a smooth path to transition from using FsCodec to that as and when neededhttps://github.com/jet/FsCodec/pull/69#issuecomment-1006532703
https://patch-diff.githubusercontent.com/jet/FsCodec#core-converters
TypeSafeEnumConverterhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.SystemTextJson/TypeSafeEnumConverter.fs
@amjjdhttps://github.com/amjjd
UnionConverterhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.SystemTextJson/UnionConverter.fs#L23
@amjddhttps://github.com/amjjd
@NickDarveyhttps://github.com/NickDarvey
FSharp.SystemTextJsonhttps://github.com/Tarmil/FSharp.SystemTextJson
https://patch-diff.githubusercontent.com/jet/FsCodec#custom-converter-base-classes
JsonIsomorphismhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/Pickler.fs#L49
@EirikTsarpalishttps://github.com/eiriktsarpalis
JsonPicklerhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/Pickler.fs#L15
@EirikTsarpalishttps://github.com/eiriktsarpalis
https://patch-diff.githubusercontent.com/jet/FsCodec#newtonsoftjson-specific-low-level-converters
OptionConverterhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/OptionConverter.fs#L7
VerbatimUtf8JsonConverterhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/VerbatimUtf8JsonConverter.fs#L7
https://patch-diff.githubusercontent.com/jet/FsCodec#systemtextjson-specific-low-level-converters
this System.Text.Json issuehttps://github.com/dotnet/runtime/issues/55744
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecnewtonsoftjsonoptions
FsCodec.NewtonsoftJson.Optionshttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/Options.fs#L8
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecsystemtextjsonoptions
FsCodec.SystemTextJson.Optionshttps://github.com/jet/FsCodec/blob/stj/src/FsCodec.SystemTextJson/Options.fs#L8
AutoUnionTests.fshttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.SystemTextJson.Tests/AutoUnionTests.fs
AutoUnionTests.fshttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.SystemTextJson.Tests/AutoUnionTests.fs
RejectNullStringConverterhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.SystemTextJson/RejectNullStringConverter.fs
JsonSerializerOptions.Defaulthttps://github.com/dotnet/runtime/pull/61434
https://patch-diff.githubusercontent.com/jet/FsCodec#serdes
FsCodec.SystemTextJson/NewtonsoftJson.Serdeshttps://github.com/jet/FsCodec/blob/master/src/FsCodec.SystemTextJson/Serdes.fs#L7
https://patch-diff.githubusercontent.com/jet/FsCodec#usage-of-converters-with-aspnet-core
https://patch-diff.githubusercontent.com/jet/FsCodec#aspnet-core-with-newtonsoftjson
https://patch-diff.githubusercontent.com/jet/FsCodec#aspnet-core-with-systemtextjson
to the great work of the .NET teamhttps://github.com/dotnet/runtime/pull/55108
autoTypeSafeEnumToJsonString and/or autoUnionToJsonObject modeshttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.SystemTextJson.Tests/AutoUnionTests.fs
https://patch-diff.githubusercontent.com/jet/FsCodec#examples-fscodecnewtonsoftsystemtextjson
tests/FsCodec.NewtonsoftJson.Tests/Examples.fsxhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/tests/FsCodec.NewtonsoftJson.Tests/Examples.fsx
tests/FsCodec.SystemTextJson.Tests/Examples.fsxhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/tests/FsCodec.SystemTextJson.Tests/Examples.fsx
https://patch-diff.githubusercontent.com/jet/FsCodec#examples-of-using-serdes-to-define-a-contract
https://patch-diff.githubusercontent.com/jet/FsCodec#simple-contracts-that-tag-all-types-or-fields-necessitating-converters-directly-and-only-records-and-options
https://patch-diff.githubusercontent.com/jet/FsCodec#more-advanced-case-necessitating-a-custom-converter
https://patch-diff.githubusercontent.com/jet/FsCodec#encoding-and-conversion-of-f-types
https://patch-diff.githubusercontent.com/jet/FsCodec#recommended-round-trippable-constructs
FSharp.UMXhttps://github.com/fsprojects/FSharp.UMX
FSharp.UMXhttps://github.com/fsprojects/FSharp.UMX
https://patch-diff.githubusercontent.com/jet/FsCodec#unsupported-types-andor-constructs
FSharp.UMXhttps://github.com/fsprojects/FSharp.UMX
FSharp.UMXhttps://github.com/fsprojects/FSharp.UMX
https://patch-diff.githubusercontent.com/jet/FsCodec#typesafeenumconverter
https://patch-diff.githubusercontent.com/jet/FsCodec#out-of-the-box-behavior-newtonsoftjson
https://patch-diff.githubusercontent.com/jet/FsCodec#out-of-the-box-behavior-systemtextjson
https://patch-diff.githubusercontent.com/jet/FsCodec#typesafeenumconverter-behavior
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecnewtonsoftjsontypesafeenumconverter
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecsystemtextjsontypesafeenumconvertert
https://patch-diff.githubusercontent.com/jet/FsCodec#custom-converters-using-jsonisomorphism
JsonIsomorphismhttps://github.com/jet/FsCodec/blob/master/src/FsCodec.NewtonsoftJson/Pickler.fs#L49
https://patch-diff.githubusercontent.com/jet/FsCodec#typesafeenum-fallback-converters-using-jsonisomorphism
https://patch-diff.githubusercontent.com/jet/FsCodec#features-ieventcodec
tests/FsCodec.SystemTextJson.Tests/Examples.fsxhttps://patch-diff.githubusercontent.com/jet/FsCodec/blob/master/tests/FsCodec.SystemTextJson.Tests/Examples.fsx
FsCodec.IEventCodechttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L34
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecieventcodec
FsCodec.IEventDatahttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L4
programming modelhttps://github.com/jet/equinox/blob/master/DOCUMENTATION.md#programming-model
FsCodec.ITimelineEventhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L23
summary eventshttp://verraes.net/2019/05/patterns-for-decoupling-distsys-summary-event/
FsCodec.IEventDatahttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L4
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecieventdata
FsCodec.ITimelineEventhttps://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fs#L23
https://patch-diff.githubusercontent.com/jet/FsCodec#fscodecitimelineevent
IEventDatahttps://patch-diff.githubusercontent.com/jet/FsCodec#IEventData
https://patch-diff.githubusercontent.com/jet/FsCodec#contracts-for-parsing--routing-event-records
a scheme for the serializing Events modelled as an F# Discriminated Unionhttps://eiriktsarpalis.wordpress.com/2018/10/30/a-contract-pattern-for-schemaless-datastores/
FSharp.UMXhttps://github.com/fsprojects/FSharp.UMX
https://patch-diff.githubusercontent.com/jet/FsCodec#strongly-typed-stream-ids-using-fsharpumx
https://patch-diff.githubusercontent.com/jet/FsCodec#stream-naming-conventions
EventStore.orghttps://eventstore.org
the codehttps://github.com/jet/FsCodec/blob/master/src/FsCodec/StreamName.fs
$by_categoryhttps://developers.eventstore.com/server/5.0.8/server/projections/system-projections.html#by-category
FsCodec.StreamNamehttps://github.com/jet/FsCodec/blob/master/src/FsCodec/StreamName.fs
https://patch-diff.githubusercontent.com/jet/FsCodec#module-stream--module-reactions-contracts-for-parsing--routing-event-records
StreamName/StreamId section abovehttps://patch-diff.githubusercontent.com/jet/FsCodec#streamname
https://patch-diff.githubusercontent.com/jet/FsCodec#decoding-events
the ClientId typehttps://patch-diff.githubusercontent.com/jet/FsCodec#umx
stream namehttps://patch-diff.githubusercontent.com/jet/FsCodec#streamname
Logging unmatched eventshttps://patch-diff.githubusercontent.com/jet/FsCodec#logging-unmatched-events
https://patch-diff.githubusercontent.com/jet/FsCodec#adding-matchers-to-the-event-contract
https://patch-diff.githubusercontent.com/jet/FsCodec#processing-reactions-logging-unmatched-events
Seriloghttps://github.com/serilog/serilog
https://patch-diff.githubusercontent.com/jet/FsCodec#handling-versioning-of-events-in-f-with-fscodec
Versioning in an Event Sourced System by Greg Younghttps://leanpub.com/esversioning
JsonIsomorphismhttps://patch-diff.githubusercontent.com/jet/FsCodec#jsonisimorphism
See example in Propulsionhttps://github.com/jet/propulsion/blob/master/src/Propulsion.DynamoStore/AppendsIndex.fs#L17
https://patch-diff.githubusercontent.com/jet/FsCodec#avoiding-versioning-by-optional-or-nullable-fields
Adding Fields Examplehttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.NewtonsoftJson.Tests/PicklerTests.fs#L45
https://patch-diff.githubusercontent.com/jet/FsCodec#upconversion-by-mapping-event-types
Null object patternhttps://en.wikipedia.org/wiki/Null_object_pattern
Upconversion examplehttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.NewtonsoftJson.Tests/PicklerTests.fs#75
https://patch-diff.githubusercontent.com/jet/FsCodec#upconversion-via-active-patterns
Upconversion active patternshttps://github.com/jet/FsCodec/blob/master/tests/FsCodec.NewtonsoftJson.Tests/PicklerTests.fs#L114
https://patch-diff.githubusercontent.com/jet/FsCodec#adding-metadata-to-events-based-on-domain-intrinsic-information
https://patch-diff.githubusercontent.com/jet/FsCodec#adding-metadata-to-events-based-on-extrinsic-context
generating Metadata based on domain informationhttps://patch-diff.githubusercontent.com/jet/FsCodec#metadata
IEventCodechttps://patch-diff.githubusercontent.com/jet/FsCodec#IEventCodec
IEventDatahttps://patch-diff.githubusercontent.com/jet/FsCodec#IEventData
Equinox'shttps://github.com/jet/equinox
https://patch-diff.githubusercontent.com/jet/FsCodec#parsing-metadata-from-events-arriving-via-streams
domain-level Metadatahttps://patch-diff.githubusercontent.com/jet/FsCodec#metadata
extrinsic contextual Metadatahttps://patch-diff.githubusercontent.com/jet/FsCodec#context
https://patch-diff.githubusercontent.com/jet/FsCodec#features-fscodecboxcodec
Test Pyramid principleshttps://martinfowler.com/articles/practical-test-pyramid.html
https://patch-diff.githubusercontent.com/jet/FsCodec#related-articles--blog-posts-etc
Contracts for Event Sourced Systems with FsCodechttps://asti.dev/post/fscodec/
@deviousastihttps://github.com/deviousasti
A Contract Pattern for Schemaless DataStoreshttps://eiriktsarpalis.wordpress.com/2018/10/30/a-contract-pattern-for-schemaless-datastores/
Eirik Tsarpalishttps://github.com/eiriktsarpalis
https://patch-diff.githubusercontent.com/jet/FsCodec#contributing
has a converter really proved itself broadly applicablehttps://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)
FSharp.SystemTextJsonhttps://github.com/Tarmil/FSharp.SystemTextJson
https://patch-diff.githubusercontent.com/jet/FsCodec#building
github.com/jet/dotnet-templateshttps://github.com/jet/dotnet-templates
json https://patch-diff.githubusercontent.com/topics/json
fsharp https://patch-diff.githubusercontent.com/topics/fsharp
converters https://patch-diff.githubusercontent.com/topics/converters
codec https://patch-diff.githubusercontent.com/topics/codec
discriminated-unions https://patch-diff.githubusercontent.com/topics/discriminated-unions
json-net https://patch-diff.githubusercontent.com/topics/json-net
typeshape https://patch-diff.githubusercontent.com/topics/typeshape
system-text-json https://patch-diff.githubusercontent.com/topics/system-text-json
union-encoder https://patch-diff.githubusercontent.com/topics/union-encoder
unionconverter https://patch-diff.githubusercontent.com/topics/unionconverter
Readme https://patch-diff.githubusercontent.com/jet/FsCodec#readme-ov-file
Apache-2.0 license https://patch-diff.githubusercontent.com/jet/FsCodec#Apache-2.0-1-ov-file
Security policy https://patch-diff.githubusercontent.com/jet/FsCodec#security-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/jet/FsCodec
Activityhttps://patch-diff.githubusercontent.com/jet/FsCodec/activity
Custom propertieshttps://patch-diff.githubusercontent.com/jet/FsCodec/custom-properties
82 starshttps://patch-diff.githubusercontent.com/jet/FsCodec/stargazers
10 watchinghttps://patch-diff.githubusercontent.com/jet/FsCodec/watchers
18 forkshttps://patch-diff.githubusercontent.com/jet/FsCodec/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fjet%2FFsCodec&report=jet+%28user%29
Releases 24https://patch-diff.githubusercontent.com/jet/FsCodec/releases
Add FsCodec.Encoding (generalized from FsCodec.Compression) Latest Jun 12, 2025 https://patch-diff.githubusercontent.com/jet/FsCodec/releases/tag/3.1.0
+ 23 releaseshttps://patch-diff.githubusercontent.com/jet/FsCodec/releases
Packages 0https://patch-diff.githubusercontent.com/orgs/jet/packages?repo_name=FsCodec
Please reload this pagehttps://patch-diff.githubusercontent.com/jet/FsCodec
Contributors 19https://patch-diff.githubusercontent.com/jet/FsCodec/graphs/contributors
Please reload this pagehttps://patch-diff.githubusercontent.com/jet/FsCodec
+ 5 contributorshttps://patch-diff.githubusercontent.com/jet/FsCodec/graphs/contributors
F# 100.0% https://patch-diff.githubusercontent.com/jet/FsCodec/search?l=f%23
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.