## goccy/go-json — v0.10.6…v0.11.0

_45 commits._

### Features
- **Decoder: allocate the value of a pointer by new of its kind (#660)** (ec10183)
- **Modernize the code: any, unsafe.Add, slices.Contains, min, max, bytes.Cut (#654)** (e3aaddc)
- **Benchmarks: add the benchmarks of sonic's encoder, with go-json beside it (#648)** (b76e2ad)
- **Add the option to let the encoder order the fields of a struct (#646)** (fc30a7e)
- **Add MarshalOf, which encodes a value without copying it to the heap (#632)** (2a9c039)
- **Add bench-check task to fail CI on performance degradation (#623)** (15fe6a5)

### Fixes
- **Decoder: fix the reported decoder issues, as encoding/json of the Go version decodes (#664)** (4d4f5ff)
- **Fix the indent of deep recursive structs, marshalers of empty values and embedded structs (#630)** (03d3f5a)
- **Fix the encoding of recursive structs and omitempty with a pointer receiver marshaler (#628)** (4155256)
- **Fix CI failures on master caused by outdated Go versions (#594)** (32fec19)
- **Fix encode/decoder compile data race (#567)** (f1e7554)

### Backend
- **Decoder: narrow the gap to sonic on interface{} values and string fields (#670)** (331b5ae)
- **Benchmarks: color the bars of the summary by library (#669)** (085ade1)
- **Decoder: remember the decoded fields of DecodeFieldPriorityFirstWin in a bit set (#668)** (b8e09e3)
- **Publish a benchmark report of the JSON libraries by category of behavior, describe the decoder as it is now in the README, and run no CI for documents alone (#667)** (c6e282d)
- **Decoder: narrow the gaps to sonic at its fastest: slices, maps, long escaped strings and interface values (#666)** (7835fc9)
- **Decoder: narrow the gaps to sonic on escaped strings, and compare with sonic as a real program runs (#665)** (4dcf7d1)
- **Decoder: decode the values held by interface values by their type, as encoding/json does (#663)** (efb8230)
- **Decoder: decode a value of interface{} without reflect (#662)** (938cc9e)
- **Decoder: report the type errors as encoding/json of the Go version does (#661)** (e4f4463)
- **Test the cases of the reported issues of the encoder (#655)** (0f678cf)
- **Decoder and encoder: struct keys by a table, numbers in one pass, strings by AVX2, benchmarks of real APIs (#659)** (9cf6220)
- **Decoder: UnmarshalOf, copies of the decoded strings, recent decoders of a context (#658)** (4cf15c8)
- **Decoder: allocate and assign through reflect instead of go:linkname (#657)** (e294a57)
- **Decoder: decode a stream by the byte slice decoders, compare the decoder with sonic (#656)** (2da917d)
- **Encoder: encode a field of interface{} by an opcode of its own (#653)** (ecd7133)
- **Write null for an interface value which holds nothing without a call (#652)** (5cff414)
- **Encoder: write the scalar entries of an unordered map of interface values as the map is read (#651)** (48254d1)
- **Encoder: cheaper frames of interface values (#650)** (3e847a8)
- **Encoder: compare the keys of a map by their first bytes as a number first (#649)** (9b23919)
- **Read the entries of a map without a linkname of the runtime (#647)** (a187ed4)
- **Encode a list of values of a recursive type in one frame (#645)** (cef4490)
- **Encoder: encode fields of the same kind in a row without a dispatch between them (#643)** (4efe278)
- **Write the key of a map of strings by the opcode of the map entry (#641)** (d19bdb0)
- **Encoder: inline the helpers of the VM, and shorter paths for strings and maps (#640)** (29cb5ef)
- **Copy the output of a marshaler as it is if it is compact and valid (#639)** (f240f3d)
- **Call the method of a marshaler directly by its code (#638)** (7f0997d)
- **Scan a string for a byte to escape by SIMD (#637)** (3b1582c)
- **Encode a scalar held by an interface value without a frame (#635)** (90c1cb3)
- **Speed up the encoder: a hash table for the cache of a type, a lighter VM and a faster AppendString (#634)** (c7ab3dd)
- **Carry the values of the encoder VM as unsafe.Pointer and remove KeepRefs (#631)** (6652d76)
- **Judge the benchmarks by the mean and by the fastest results (#629)** (9094d0d)
- **Always give the address of the value to the encoder VM (#626)** (16442d5)
- **Remove runtime.Type and go:linkname to reflect.ifaceIndir (#625)** (d3e9842)
- **Remove go:linkname to reflect.(*rtype) methods (#624)** (00865c5)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/goccy/go-json?utm_source=github-action)._