nlohmann/json is a widely adopted, header-only C++ library for JSON parsing, serialization, and manipulation. It provides a single-header `json.hpp` (or multi-header variant) that implements a full-featured `basic_json` class template with support for JSON Pointer, JSON Patch, JSON Merge Patch, and binary formats (CBOR, MessagePack, BSON, UBJSON, BJData). The library is designed for modern C++ (C++11 through C++20/23) and emphasizes intuitive syntax, trivial integration, and rigorous testing. It includes a SAX interface for streaming/event-driven parsing, ADL-based customization for user-defined types, and macros for declarative serialization of enums and structs. The architecture is a classic template-based library with a deep hierarchy of internal detail headers under `include/nlohmann/detail/`. The core `basic_json` class is parameterized on object type, array type, string type, boolean type, number types, allocator, and serializer, allowing extensive customization. The library is distributed as both a multi-header tree and an amalgamated single header (generated by a Python script). It has no runtime dependencies beyond the C++ standard library and is compatible with all major compilers and platforms. Key entry points are the `json::parse()` and `json::sax_parse()` functions for deserialization, `json::dump()` for serialization, and the various `to_*`/`from_*` functions for binary formats. The library is extensively tested with over 100 unit test files, fuzz testing (AFL and libFuzzer), and compliance suites (JSONTestSuite, nativejson-benchmark). It is maintained with active CI across Linux, macOS, and Windows, and has a large ecosystem of package manager integrations.
This is the `tinylib/msgp` repository, a high-performance MessagePack serialization library for Go with an integrated code generation tool. The actual system consists of two layers: a runtime library in the `msgp/` package providing buffered readers/writers, zero-copy byte slice operations, and interfaces like `Marshaler`/`Unmarshaler`; and a code generator (`main.go`, `gen/`, `parse/`) that produces optimized, reflection-free serialization methods from Go structs and directives. The architecture is a combination of a CLI tool (for `//go:generate` workflows) and a library that the generated code depends on. Key entry points include the `Run()` function in `main.go` for code generation, and the `Reader`/`Writer` types for runtime I/O. External dependencies are minimal: `philhofer/fwd` for buffered I/O and `golang.org/x/tools` for code formatting. The library supports advanced features like shims, type replacement, omitempty/omitzero, limits, generics, and set types. The codebase is well-structured, with extensive tests and benchmarks, and demonstrates sophisticated engineering in code generation and serialization performance.