dotnet / dotnet/runtime

[GLD Serializer Benchmark] C# System.Text.Json 8.0.0.0 — spec compliance misses

Closed
#133,920 4 comments 0 reactions 0 assignees View on GitHub
area-System.Text.Json needs-author-action untriaged
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

Hi — this is a friendly report from the [GLD Serializer Benchmark](https://github.com/leo-gan/GLD.SerializerBenchmark), an independent multi-language suite that times serializers **and** checks them against the published format specs (RFC 8259, YAML 1.2, …).

We measured **System.Text.Json 8.0.0.0** on **C#**. The suite recorded spec-profile misses for this pin. The catalog is **report-only**: a miss is not a CI failure, and some cases are older or stricter profiles (for example RFC 4627 vs RFC 8259) rather than a crash.

## Compliance results (please start here)

This link opens the live heatmap on **C#** with **System.Text.Json** already selected (All standards). Click a scored cell for each FAIL and the cited spec paragraph:

https://leo-gan.github.io/GLD.SerializerBenchmark/dashboard/#compliance/csharp/System.Text.Json

How the catalog is built, and how to read a FAIL line:

- https://leo-gan.github.io/GLD.SerializerBenchmark/compliance/
- https://leo-gan.github.io/GLD.SerializerBenchmark/compliance/reading-results/

I am not pasting the case list here so you can use the Dashboard (filters, heatmap, and spec links) rather than a static dump.

Optional: one standard family only — `#compliance/csharp/System.Text.Json/json` (or `yaml`, `cbor`, …).

## Benchmark timings (same pin)

The same suite also publishes encode / decode time and payload size for this library on C#:

https://leo-gan.github.io/GLD.SerializerBenchmark/dashboard/?lang=csharp&data=document@n=1&mode=bytes#dashboard

Details table (this library pre-selected):

https://leo-gan.github.io/GLD.SerializerBenchmark/dashboard/?lang=csharp&ser=System.Text.Json&data=document@n=1&mode=bytes#detailed-analytics

That page is the live L1 snapshot, not a claim that one library is “best.”

## Ask

Please look at the Compliance view for **System.Text.Json**. If a miss is a real decoder/encoder bug you want to fix, great. If it is an intentional default (accepting NaN, YAML 1.1 bools, …), a short note here is enough — we will keep the catalog as-is unless the library’s documented contract changes.

Thanks for the library.

Contributor guide

Open the contributing guide

Research direction

Start with the Compliance dashboard for C# System.Text.Json and inspect each scored FAIL cell and its cited specification paragraph. Determine whether each miss is a real encoder or decoder defect or an intentional documented behavior; done means recording the assessment and, for a confirmed defect, identifying the relevant runtime entry point for follow-up.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.