# Appendix: References

> Source: https://www.ymotongpoo.com/books/go-json-v2-history/99-references/


## Official Go resources

* Go 1.27 Release Notes: <https://go.dev/doc/go1.27>
* Go 1.25 Release Notes (experimental introduction): <https://go.dev/doc/go1.25>
* A new experimental Go API for JSON (2025-09-09): <https://go.dev/blog/jsonv2-exp>
* Evolving the Go Standard Library with math/rand/v2 (2024-05-01): <https://go.dev/blog/randv2>
* Go 1 and the Future of Go Programs (the compatibility promise): <https://go.dev/doc/go1compat>
* The Future of JSON in Go (GopherCon 2023, Joe Tsai): <https://www.youtube.com/watch?v=avilmOcHKHE>

## Issues and discussions

| Number | Description |
|---|---|
| [#14750](https://github.com/golang/go/issues/14750) | Case-insensitive matching (2016-03-10 to 2025-06-27) |
| [#4712](https://github.com/golang/go/issues/4712) | Representation of `time.Duration` (closed 2017-02-17) |
| [#63397](https://github.com/golang/go/discussions/63397) | The encoding/json/v2 Discussion (2023-10-05) |
| [#71497](https://github.com/golang/go/issues/71497) | The formal proposal (2025-01-31; accepted 2026-05-13) |
| [#71631](https://github.com/golang/go/issues/71631) | Default representation of `time.Duration` (closed 2025-12-18) |
| [#79071](https://github.com/golang/go/issues/79071) | Withdrawal of the `format` tag (2026-04-30) |
| [#74472](https://github.com/golang/go/issues/74472) | Typed struct tags proposal (on hold) |
| [#76406](https://github.com/golang/go/issues/76406) | json/v2 working group meeting minutes |
| [#61716](https://github.com/golang/go/issues/61716) | The math/rand/v2 proposal (accepted 2023-10-03) |
| [#60751](https://github.com/golang/go/discussions/60751) | Positioning as the first v2 in the standard library |
| [#67401](https://github.com/golang/go/issues/67401) | The linkname lockdown |

## Prototype and benchmarks

* go-json-experiment/json: <https://github.com/go-json-experiment/json>
* go-json-experiment/jsonbench: <https://github.com/go-json-experiment/jsonbench>

## Third parties

* goccy/go-json: <https://github.com/goccy/go-json>
* goccy/go-json#568 (case-insensitive matching stops working at 17 or more fields): <https://github.com/goccy/go-json/issues/568>
* bytedance/sonic's Go 1.27 compatibility catalog: <https://github.com/bytedance/sonic/blob/main/docs/sonic-go127-compatibility.md>
* json-iterator/go (archived): <https://github.com/json-iterator/go>
* golang/protobuf#1673 (protojson and jsontext): <https://github.com/golang/protobuf/issues/1673>

## Standard library sources quoted in this book

| Description | File |
|---|---|
| The list of v1 legacy behavior flags | `src/encoding/json/internal/jsonflags/flags.go` |
| `DefaultOptionsV1` and the migration documentation | `src/encoding/json/v2_options.go` |
| The bridge between v1 and v2 error types | `src/encoding/json/v2_inject.go` |
| The `format` tag implementation and its enabling switch | `src/encoding/json/v2/arshal_time.go`, `src/encoding/json/internal/jsonopts/options_format.go` |
| The Hyrum-proofing of error wording | `src/encoding/json/v2/errors.go` |
| The optimized path for decoding into `any` | `src/encoding/json/v2/arshal_default.go` |
| The `GOEXPERIMENT` default values | `src/internal/buildcfg/exp.go` |

> The benchmark results in this book were taken on go1.27 darwin/arm64 (Apple M5 Pro).
> Benchmark numbers depend heavily on the environment and the shape of the data, so re-measure with your own data before using them for decisions.
> The quoted source code is from Go 1.27.0. Option names and flag layouts may change in future releases.

