Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 09:18
· 5 commits to master since this release
d83d7c8
  • Per-call parameters on every read. ToObject(bytes, Type, param), Parse(bytes, param), ToDynamic(bytes, param), FillObject(input, bytes, param) and DeepCopy(obj, param) take the settings for that call, so code that picks the type at run time no longer has to change the global Bjson.Parameters. The parameters you pass are copied and never modified.
  • Behaviour change: reads without parameters now resolve conflicting settings. ToObject, FillObject and DeepCopy without a param argument used to skip the step that turns EnableAnonymousTypes into ShowReadOnlyProperties, 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 set EnableAnonymousTypes on Bjson.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.md has 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