2
0
mirror of https://github.com/boostorg/json.git synced 2026-02-02 21:02:18 +00:00
Vinnie Falco 95d28f643e Update badges
2020-09-05 21:32:19 -07:00
2020-09-05 16:42:52 -07:00
2020-09-04 15:48:58 -07:00
2020-07-03 11:51:58 -07:00
2020-09-05 16:42:52 -07:00
2020-06-30 12:34:08 -07:00
2020-06-30 12:34:08 -07:00
2020-09-02 07:00:44 -07:00
2020-07-03 11:51:58 -07:00
2020-08-22 06:37:07 -07:00
2019-09-20 11:08:06 -07:00
2020-09-05 21:32:19 -07:00

Boost.JSON Title

Branch master develop
Travis Build Status Build Status
Appveyor Build status Build status
Azure Pipelines Build Status Build Status
codecov.io codecov codecov
Docs Documentation Documentation
Matrix Matrix Matrix
Fuzzing fuzz ---

Boost.JSON

This is currently NOT an official Boost library.

Introduction

This library provides containers and algorithms which implement JSON ("JavaScript Object Notation"), a lightweight data-interchange format. This format is easy for humans to read and write, and easy for machines to parse and generate. It is based on a subset of the Javascript Programming Language, Standard ECMA-262. JSON is a text format that is language-indepdent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

Motivation

A survey of existing JSON libraries shows impressive diversity and features. However, no library is known to meet all of the design goals mentioned here. In particular, we know of no library that supports incremental parsing and serialization, and also supports custom allocators robustly.

Design Goals

There are an overwhelming number of JSON libraries. A common theme throughout is an emphasis on parsing performance or feature richness. This library uses a different approach: it provides a carefully designed JSON container, value, engineered from the ground up to be ideally suited as a vocabulary type. In particular it provides an interface which is stable, lightweight, and appropriate for use as parameter or return types in public interfaces.

The design of the library also achieves these goals:

  • Requires only C++11.
  • Support stateful allocators.
  • Top performance of general libraries.
  • Uniform interface on all C++ versions.
  • Key lookup in objects has constant average complexity.
  • Strict parser and serializer which work incrementally.
  • Security-aware treatment of untrusted inputs.
  • Fast compilation performance.

CMake

cmake -G "Visual Studio 16 2019" -A Win32 -B bin -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/msvc.cmake
cmake -G "Visual Studio 16 2019" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/msvc.cmake

License

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)

Description
Mirrored via gitea-mirror
Readme 16 MiB
Languages
C++ 96.2%
HTML 1.2%
CMake 1%
Python 0.9%
Shell 0.4%
Other 0.3%