Wednesday, 5 February 2020

On the importance of Serialization

Serialization is a core feature that all modern languages should not only provide but be designed for. By not doing this, .NET and F# gave rise to a cottage industry of JSON serializers:
  • FSharp.Json
  • SpanJson.Fsharp.Formatter
  • Utf8Json.FSharpExtensions
  • FsPickler.Json
  • Falanx.Proto.Codec.Json
  • Fleece.FSharpData
  • EdIlyin.FSharp.Elm.Core
  • FSharpEnt.Common
  • FsJson
  • Giraffe.JsonTherapy
  • Kephas.Serialization.Json
  • Vertigo.Json
  • FSharp.Azure.Storage
  • FSharp.Data
  • FSharp.SimpleJson
  • Newtonsoft.Json.FSharp
  • FSharpUtils.Newtonsoft.JsonValue
  • Fable.Remoting.Json 2.2.0
  • Fable.SimpleJson
  • Thoth.Json 2.5.0
  • Thoth.Json.Net 2.5.0
  • JsonFSharp
  • Jet.JsonNet.Converters


macias said...

How do you provide one, true and only serialization in the language (?). Language should provide the basics, not serialization or GUI support. It is enough to deal with broken ideas like Equals, ToString, etc. Also there more important issues like lack of INumerics interface for ints, doubles, so we could finally write generic Add function.

And as for serialization, what's wrong with installing library X? Some want human-readable serialization, some want size efficient one, some want ASCII-7 one, some want type version enforced. And so on. One library for all those needs... Doubtful.

Serge Kaspar said...
This comment has been removed by the author.
Serge Kaspar said...

+ FSharp.SystemTextJson
+ FSharpLu.Json
+ ServiceStack.Text/Json
+ Utf8Json

Serge Kaspar said...

+ Gluon.JsonSerializer

Serge Kaspar said...

+ FsCodec.NewtonsoftJson