Ecng system framework
$ dotnet add package Ecng.SerializationHelpers for JSON and high-performance binary serialization.
Provide easy to use serializers with built in SettingsStorage support so objects can be persisted or transmitted with minimal code.
IPersistable helpersSpanWriter/SpanReader for compact binary formatvar serializer = JsonSerializer<MyData>.CreateDefault();
await using var stream = File.OpenWrite("data.json");
await serializer.SerializeAsync(data, stream, CancellationToken.None);
await using var read = File.OpenRead("data.json");
var loaded = await serializer.DeserializeAsync(read, CancellationToken.None);
Same using standard .NET:
await System.Text.Json.JsonSerializer.SerializeAsync(stream, data);
SpanWriter writer = stackalloc byte[256];
writer.WriteInt32(42);
writer.WriteString("hello");
var reader = new SpanReader(writer.Buffer);
int num = reader.ReadInt32();
string text = reader.ReadString();
var storage = new SettingsStorage();
myObj.Save(storage);
string raw = storage.SaveToString<JsonSerializer<SettingsStorage>>();
var restored = raw.LoadFromString<JsonSerializer<SettingsStorage>>();