{"id":15047902,"url":"https://github.com/boostorg/json","last_synced_at":"2025-04-14T20:57:13.893Z","repository":{"id":37504884,"uuid":"208118727","full_name":"boostorg/json","owner":"boostorg","description":"A C++11 library for parsing and serializing JSON to and from a DOM container in memory.","archived":false,"fork":false,"pushed_at":"2025-03-15T16:57:48.000Z","size":13074,"stargazers_count":449,"open_issues_count":96,"forks_count":99,"subscribers_count":23,"default_branch":"develop","last_synced_at":"2025-04-07T16:11:56.829Z","etag":null,"topics":["boost","cplusplus","cplusplus-11","fast","header-only","json","json-libraries","parse"],"latest_commit_sha":null,"homepage":"https://boost.org/libs/json","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boostorg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE_1_0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-12T18:28:30.000Z","updated_at":"2025-04-06T21:40:49.000Z","dependencies_parsed_at":"2024-11-11T19:30:14.072Z","dependency_job_id":"5753ab4c-db20-4796-813d-68fd6ad1eef4","html_url":"https://github.com/boostorg/json","commit_stats":{"total_commits":1184,"total_committers":39,"mean_commits":"30.358974358974358","dds":0.5574324324324325,"last_synced_commit":"7f0bceb81280df758c7b4a7cacf8779351ebcc53"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fjson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fjson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fjson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boostorg%2Fjson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boostorg","download_url":"https://codeload.github.com/boostorg/json/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248961186,"owners_count":21189991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boost","cplusplus","cplusplus-11","fast","header-only","json","json-libraries","parse"],"created_at":"2024-09-24T21:05:54.400Z","updated_at":"2025-04-14T20:57:13.870Z","avatar_url":"https://github.com/boostorg.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"[![Boost.JSON](https://raw.githubusercontent.com/CPPAlliance/json/master/doc/images/repo-logo-3.png)](https://www.boost.org/doc/libs/release/libs/json)\n\nBranch          | [`master`](https://github.com/boostorg/json/tree/master) | [`develop`](https://github.com/boostorg/json/tree/develop) |\n--------------- | ----------------------------------------------------------- | ------------------------------------------------------------- |\n[Azure](https://azure.microsoft.com/en-us/services/devops/pipelines/) | [![Build Status](https://img.shields.io/azure-devops/build/vinniefalco/2571d415-8cc8-4120-a762-c03a8eda0659/8/master)](https://vinniefalco.visualstudio.com/json/_build/latest?definitionId=5\u0026branchName=master) | [![Build Status](https://img.shields.io/azure-devops/build/vinniefalco/2571d415-8cc8-4120-a762-c03a8eda0659/8/develop)](https://vinniefalco.visualstudio.com/json/_build/latest?definitionId=8\u0026branchName=develop)\nDocs            | [![Documentation](https://img.shields.io/badge/docs-master-brightgreen.svg)](https://www.boost.org/doc/libs/master/libs/json/) | [![Documentation](https://img.shields.io/badge/docs-develop-brightgreen.svg)](https://www.boost.org/doc/libs/develop/libs/json/)\n[Drone](https://drone.io/) | [![Build Status](https://drone.cpp.al/api/badges/boostorg/json/status.svg?ref=refs/heads/master)](https://drone.cpp.al/boostorg/json) | [![Build Status](https://drone.cpp.al/api/badges/boostorg/json/status.svg?ref=refs/heads/develop)](https://drone.cpp.al/boostorg/json)\nMatrix          | [![Matrix](https://img.shields.io/badge/matrix-master-brightgreen.svg)](http://www.boost.org/development/tests/master/developer/json.html) | [![Matrix](https://img.shields.io/badge/matrix-develop-brightgreen.svg)](http://www.boost.org/development/tests/develop/developer/json.html)\nFuzzing         | --- |  [![fuzz](https://github.com/boostorg/json/workflows/fuzz/badge.svg?branch=develop)](https://github.com/boostorg/json/actions?query=workflow%3Afuzz+branch%3Adevelop)\n[Appveyor](https://ci.appveyor.com/) | [![Build status](https://ci.appveyor.com/api/projects/status/8csswcnmfm798203?branch=master\u0026svg=true)](https://ci.appveyor.com/project/vinniefalco/cppalliance-json/branch/master) | [![Build status](https://ci.appveyor.com/api/projects/status/8csswcnmfm798203?branch=develop\u0026svg=true)](https://ci.appveyor.com/project/vinniefalco/cppalliance-json/branch/develop)\n[codecov.io](https://codecov.io) | [![codecov](https://codecov.io/gh/boostorg/json/branch/master/graph/badge.svg)](https://codecov.io/gh/boostorg/json/branch/master) | [![codecov](https://codecov.io/gh/boostorg/json/branch/develop/graph/badge.svg)](https://codecov.io/gh/boostorg/json/branch/develop)\n\n# Boost.JSON\n\n## Overview\n\nBoost.JSON is a portable C++ library which provides containers and\nalgorithms that implement\n[JavaScript Object Notation](https://json.org/), or simply \"JSON\",\na lightweight data-interchange format. This format is easy for humans to\nread and write, and easy for machines to parse and generate. It is based\non a subset of the JavaScript Programming Language\n([Standard ECMA-262](https://www.ecma-international.org/ecma-262/10.0/index.html)),\nand is currently standardised in [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259).\nJSON is a text format that is language-independent but uses conventions\nthat are familiar to programmers of the C-family of languages, including\nC, C++, C#, Java, JavaScript, Perl, Python, and many others. These\nproperties make JSON an ideal data-interchange language.\n\nThis library focuses on a common and popular use-case: parsing\nand serializing to and from a container called `value` which\nholds JSON types. Any `value` which you build can be serialized\nand then deserialized, guaranteeing that the result will be equal\nto the original value. Whatever JSON output you produce with this\nlibrary will be readable by most common JSON implementations\nin any language.\n\nThe `value` container is designed to be well suited as a\nvocabulary type appropriate for use in public interfaces and\nlibraries, allowing them to be composed. The library restricts\nthe representable data types to the ranges which are almost\nuniversally accepted by most JSON implementations, especially\nJavaScript. The parser and serializer are both highly performant,\nmeeting or exceeding the benchmark performance of the best comparable\nlibraries. Allocators are very well supported. Code which uses these\ntypes will be easy to understand, flexible, and performant.\n\nBoost.JSON offers these features:\n\n* Fast compilation\n* Require only C++11\n* Fast streaming parser and serializer\n* Constant-time key lookup for objects\n* Options to allow non-standard JSON\n* Easy and safe modern API with allocator support\n* Optional header-only, without linking to a library\n\nVisit https://boost.org/libs/json for complete documentation.\n\n## Requirements\n\n* Requires only C++11\n* Link to a built static or dynamic Boost library, or use header-only (see below)\n* Supports -fno-exceptions, detected automatically\n\nThe library relies heavily on these well known C++ types in\nits interfaces (henceforth termed _standard types_):\n\n* `string_view`\n* `memory_resource`, `polymorphic_allocator`\n* `error_category`, `error_code`, `error_condition`, `system_error`\n\n### Header-Only\n\nTo use as header-only; that is, to eliminate the requirement to\nlink a program to a static or dynamic Boost.JSON library, simply\nplace the following line in exactly one new or existing source\nfile in your project.\n```\n#include \u003cboost/json/src.hpp\u003e\n```\n\nMSVC users must also define the macro `BOOST_JSON_NO_LIB` to disable\nauto-linking. Note, that if you also want to avoid linking to Boost.Container,\nwhich is a dependency of Boost.JSON, you have to define\n`BOOST_CONTAINER_NO_LIB`. In order to disable auto-linking to Boost libraries\ncompletely you can define `BOOST_ALL_NO_LIB` instead.\n\n### Embedded\n\nBoost.JSON works great on embedded devices. The library uses local\nstack buffers to increase the performance of some operations. On\nIntel platforms these buffers are large (4KB), while on non-Intel\nplatforms they are small (256 bytes). To adjust the size of the\nstack buffers for embedded applications define this macro when\nbuilding the library or including the function definitions:\n```\n#define BOOST_JSON_STACK_BUFFER_SIZE 1024\n#include \u003cboost/json/src.hpp\u003e\n```\n### Endianness\n\nBoost.JSON uses [Boost.Endian](https://www.boost.org/doc/libs/release/libs/endian/doc/html/endian.html)\nin order to support both little endian and big endian platforms.\n\n### Supported Compilers\n\nBoost.JSON has been tested with the following compilers:\n\n* clang: 3.5, 3.6, 3.7, 3.8, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14\n* gcc: 5, 6, 7, 8, 9, 10, 11, 12\n* msvc: 14.0, 14.1, 14.2, 14.3\n\n### Supported JSON Text\n\nThe library expects input text to be encoded using UTF-8, which is a\nrequirement put on all JSON exchanged between systems by the\n[RFC](https://datatracker.ietf.org/doc/html/rfc8259#section-8.1). Similarly,\nthe text generated by the library is valid UTF-8.\n\nThe RFC does not allow byte order marks (BOM) to appear in JSON text, so the\nlibrary considers BOM syntax errors.\n\nThe library supports several popular JSON extensions. These have to be\nexplicitly enabled.\n\n### Visual Studio Solution\n\n    cmake -G \"Visual Studio 16 2019\" -A Win32 -B bin -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/msvc.cmake\n    cmake -G \"Visual Studio 16 2019\" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/msvc.cmake\n\n## Quality Assurance\n\nThe development infrastructure for the library includes\nthese per-commit analyses:\n\n* Coverage reports\n* Benchmark performance comparisons\n* Compilation and tests on Drone.io, Azure Pipelines, Appveyor\n* Fuzzing using clang-llvm and machine learning\n\n## License\n\nDistributed under the Boost Software License, Version 1.0.\n(See accompanying file [LICENSE_1_0.txt](LICENSE_1_0.txt) or copy at\nhttps://www.boost.org/LICENSE_1_0.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fjson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostorg%2Fjson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostorg%2Fjson/lists"}