Repository navigation
v0.4.0
- Per-call parameters on every read.
ToObject(bytes, Type, param),Parse(bytes, param),ToDynamic(bytes, param),FillObject(input, bytes, param)andDeepCopy(obj, param)take the settings for that call, so code that picks the type at run time no longer has to change the globalBjson.Parameters. The parameters you pass are copied and never modified. - Behaviour change: reads without parameters now resolve conflicting settings.
ToObject,FillObjectandDeepCopywithout aparamargument used to skip the step that turnsEnableAnonymousTypesintoShowReadOnlyProperties, so they read a get-only collection differently from the same call given the same parameters explicitly. All reads now go through one path. If you setEnableAnonymousTypesonBjson.Parameters, get-only members are now filled on read, as they already were when you passed the parameters in. - README. New Performance section (time, allocation and wire size against fastBinaryJSON 1.6.1 and System.Text.Json, on the repository's own corpus), with commands that reproduce it.
docs/benchmarks.mdhas the full BenchmarkDotNet output for every arm. System.Text.Json is ahead on allocation and on most raw sizes, and the text says so. - No change to the wire format, and no measurable change in speed or allocation against 0.3.0 (checked with the same benchmark on net10.0).
Package: https://www.nuget.org/packages/DuraIT.FastBinaryJson/0.4.0