Boost.org property_tree module

Overview

Maintainer

This library is currently maintained by Richard Hodges with generous support from the C++ Alliance.

Build Status

Branch Status
develop CI
master CI

Licence

This software is distributed under the Boost Software License, Version 1.0.

Original Work

This library is the work of Marcin Kalicinski and Sebastian Redl

Copyright (C) 2002-2006 Marcin Kalicinski
Copyright (C) 2009 Sebastian Redl

Issues
  • This seems to be a bug

    This seems to be a bug

    parse xml file:

    c++ code:

    std::locale utf8Locale(std::locale(), new std::codecvt_utf8<wchar_t>());
    std::wifstream f(*path);
    f.imbue(utf8Locale);
    wptree tree;
    read_xml(f, tree);
    

    xml file content:

    <?xml version="1.0" encoding="UTF-8"?>
    <data>
    <content>你好&#128549;</content>
    </data>
    

    result is: "你好😥" image

    other info: boost property tree v 1.68.0 VS 2017 15.9.4 Windows 10 17763.195

    opened by HppZ 8
  • JSON Parser: Missing Bind Placeholders

    JSON Parser: Missing Bind Placeholders

    Fixes missing placeholder includes to boost::bind.

    boost/property_tree/json_parser/detail/parser.hpp(217): error: identifier "_1" is undefined
    boost/property_tree/json_parser/detail/parser.hpp(520): error: identifier "_1" is undefined
    

    Reported in https://svn.boost.org/trac/boost/ticket/12841

    opened by ax3l 8
  • handle xml writing of null keys

    handle xml writing of null keys

    boost::property_tree can have nulls as keys. In particular, json read typically generates child nodes with null keys as part of array processing. Place a nonce (3cb6534e-d358-4705-9e74-fee06453661e) as a unique tag name for null keys in write_xml.

    opened by brchrisman 6
  • Deprecation warning with boost 1.73.0 in json_parser/detail/parser.hpp

    Deprecation warning with boost 1.73.0 in json_parser/detail/parser.hpp

    json_parser/detail/parser.hpp includes <boost/bind.hpp> which causes a deprecation warning with boost 1.73.0.

    ..\boost\boost/bind.hpp(41): note: The practice of declaring the Bind placeholders (_1, _2, ...)
    in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using
    namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to
    retain the current behavior.
    

    This could for example be resolved by using #include <boost/bind/bind.hpp> and adding a using namespace boost::placeholders in the methods that use boost::bind with _1, etc.

    opened by rogerorr 5
  • Fix different signedness comparison on Arm

    Fix different signedness comparison on Arm

    wchar_t is an unsigned on Arm, therefore a promotion is necessary here to correctly perform the comparison

    More information about Armv8 types on https://developer.arm.com/documentation/den0024/a/Porting-to-A64/Data-types

    opened by aladram 2
  • How to parse nested level of arrays in a json using boosts property tree?

    How to parse nested level of arrays in a json using boosts property tree?

    Hi, I want to parse below JSON data and get the "netconf-clients" available. Can someone help me on how to do it.

    ('{"o-ran-dhcp:dhcp": {"interfaces": [{"interface": "mPlaneVlan295", "dhcpv4": ' '{"client-id": "53148/473966A.101/L1174115125", "dhcp-server-identifier": ''"192.168.100.1", "interface-mtu": 1500, "domain-name": "nokia.com", ' '"domain-name-servers": ["192.168.1.1", "192.168.1.2"], "default-gateways": ''["192.168.100.1"], **"netconf-clients": [{"client": "192.168.100.1", ''"optional-port": 4334}, {"client": "xyz.com", "optional-port": 4334}], '** '"ca-ra-servers": [{"servers": "192.168.100.1", "port-number": 99, ' '"ca-ra-path": "var/opt/z", "subject-name": "radio", "protocol": "HTTPS"}], ' '"segw": [{"gateways": "1.2.3.4"}], "local-ip": "192.168.100.3"}, "dhcpv6": ''{}}], "m-plane-dhcp": {"private-enterprise-num": 53148, "vendor-class-data": ' '"o-ran/No125"}}}')

    Br, Neeraj

    opened by Neeraj0019 2
  • GCC suggest-override warning

    GCC suggest-override warning

    Warning when Boost 1.72 is built with GCC 7.5 with -Wsuggest-override added to cxxflags:

    ./boost/property_tree/detail/rapidxml.hpp:61:29: warning: ‘virtual const char* boost::property_tree::detail::rapidxml::parse_error::what() const’ can be marked override [-Wsuggest-override]
    

    BOOST_OVERRIDE was introduced in https://github.com/boostorg/config/commit/ffe4e0f5a448578cce14e3eed0cf7163333a81d9.

    opened by EugeneZelenko 2
  • Proof-of-concept `splice` operation

    Proof-of-concept `splice` operation

    It's currently not possible to efficiently move nodes between ptrees.

    Context/discussion: https://stackoverflow.com/a/29563086/85371

    This PR is a DRAFT. It is meant to sollicit interest and quick review (is the idea "sane"? I do not believe any invariants are at risk, but maybe the core maintainers see more).

    If there's interest, I'll flesh it out in full.


    Multi Index splice overloads: http://www.boost.org/doc/libs/release/libs/multi_index/doc/reference/seq_indices.html#list_operations

    reviewer suggestion: Joaquín M López Muñoz

    opened by sehe 2
  • Update xml_parser.qbk

    Update xml_parser.qbk

    Though correct, the documentation is misleading about the name of the "<xmlattr>" tag, because most readers will assume that the "<" and ">" are there to denote that it's a tag and the actual name is "xmlattr" only. Save hundreds of programmers an hour of debugging by making it clear.

    opened by Megatokio 1
  • Update CMakeLists.txt, test/CMakeLists.txt

    Update CMakeLists.txt, test/CMakeLists.txt

    In the root CML, this moves the options/folders outside the BOOST_SUPERPROJECT_VERSION case. In tests/CML, it attaches the tests to the tests target, which will be the Boost-wide convention for building the test executables. They are still left attached to the all target as well, because I didn't know if that was relied upon. If not, the test executables should use EXCLUDE_FROM_ALL.

    opened by pdimov 1
  • Create CMakeLists.txt

    Create CMakeLists.txt

    I created CMakeLists.txt on the root, test, and examples directories to make this library managed by CMake.

    Installation

    $ mkdir build && cd build
    build/$ cmake ..
    build/$ make
    build/$ make install
    

    Running Tests

    $ mkdir build && cd build
    build/$ cmake .. -DBUILD_TESTING=ON
    build/$ make
    build/$ make test
    

    Running Examples

    $ mkdir build && cd build
    build/$ cmake .. -DBUILD_EXAMPLES=ON
    build/$ make
    build/$ make example-${EXAMPLE_NAME}
    
    opened by ken-matsui 1
  • Improve robustness of INI parser by refusing NULL characters

    Improve robustness of INI parser by refusing NULL characters

    We are facing a weird issue on Windows, where a file move operation is not atomic: It seems to copy the file and sometimes it produces files that start normally, but then end filled with NULL characters. It looks as if a buffer was prepared, possibly memory mapped and then never filled.

    Unfortunately the property_tree ini parser parses such files in many cases. Would it be possible to throw an exception on NULL characters, possibly as an option? Other characters below ASCII 32 excluding CR, LF, TAB may possibly be refused as well.

    opened by bubnikv 0
  • XML writer / parser does not implement attribute normalization, it is not conformant

    XML writer / parser does not implement attribute normalization, it is not conformant

    boost::property_tree is able to read the XML attribute values it writes, however it seems to not implement XML attribute normalization: https://www.w3.org/TR/REC-xml/#AVNormalize

    Namely, if a XML attribute value contains newlines or tabs, these newlines or tabs are replaced by libexpat by spaces after parsing and before passing to an application due to the mandatory normalization as shown by the following table from the XML norm:

    image

    Please note that an attribute type is considered CDATA by default.

    And by the way, none of the XML parsers / writers that I checked (boost serialization, tinyxml, lib3mf) seem to implement normalization.

    This issue is similar to https://github.com/3MFConsortium/lib3mf/issues/288

    opened by bubnikv 0
  • simple example in documentation does not work regarding const_iterator

    simple example in documentation does not work regarding const_iterator

    Hi,

    the simple example found here, https://www.boost.org/doc/libs/1_78_0/doc/html/property_tree/accessing.html gives the error below on the full code:

    #include <boost/property_tree/xml_parser.hpp>
    #include <iostream>
    
    using boost::property_tree::ptree;
    
    int main() {
        ptree pt;
        pt.push_back(ptree::value_type("pi", ptree("3.14159")));
        ptree::const_iterator it = pt.find("pi");
    }
    

    C:\Users\tsch\source\repos\ConsoleApplication2\ConsoleApplication2.cpp(10,45): error C2440: "Initialisierung": "boost::property_tree::basic_ptree<std::string,std::string,std::less>::assoc_iterator" kann nicht in "boost::property_tree::basic_ptree<std::string,std::string,std::less>::const_iterator" konvertiert werden 1> with 1> [ 1> Key=std::string 1> ]

    of course, it works with 'assoc_iterator', but if this is intended, the documentation needs a change.

    Thomas

    opened by TomFD 1
  • Failed to compile a program with Boost 1.78.0: 'library_version' was not declared

    Failed to compile a program with Boost 1.78.0: 'library_version' was not declared

    I have been trying to compile a program package called Bagel (https://nubakery.org/quickstart/installation_guide.html) requiring boost as a dependency. Unfortunately, I ran into the following error when making bagel:

    make  all-recursive
    make[1]: Entering directory '/home/rketka/src/bagel-1.2.2/obj'
    Making all in src
    make[2]: Entering directory '/home/rketka/src/bagel-1.2.2/obj/src'
    Making all in util
    make[3]: Entering directory '/home/rketka/src/bagel-1.2.2/obj/src/util'
    Making all in parallel
    make[4]: Entering directory '/home/rketka/src/bagel-1.2.2/obj/src/util/parallel'
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT process.lo -MD -MP -MF .deps/process.Tpo -c -o process.lo ../../../../src/util/parallel/process.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT mpi_interface.lo -MD -MP -MF .deps/mpi_interface.Tpo -c -o mpi_interface.lo ../../../../src/util/parallel/mpi_interface.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT rmawindow.lo -MD -MP -MF .deps/rmawindow.Tpo -c -o rmawindow.lo ../../../../src/util/parallel/rmawindow.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT resources.lo -MD -MP -MF .deps/resources.Tpo -c -o resources.lo ../../../../src/util/parallel/resources.cc
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT mpi_interface.lo -MD -MP -MF .deps/mpi_interface.Tpo -c ../../../../src/util/parallel/mpi_interface.cc  -fPIC -DPIC -o .libs/mpi_interface.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT rmawindow.lo -MD -MP -MF .deps/rmawindow.Tpo -c ../../../../src/util/parallel/rmawindow.cc  -fPIC -DPIC -o .libs/rmawindow.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT process.lo -MD -MP -MF .deps/process.Tpo -c ../../../../src/util/parallel/process.cc  -fPIC -DPIC -o .libs/process.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/parallel -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT resources.lo -MD -MP -MF .deps/resources.Tpo -c ../../../../src/util/parallel/resources.cc  -fPIC -DPIC -o .libs/resources.o
    mv -f .deps/resources.Tpo .deps/resources.Plo
    mv -f .deps/process.Tpo .deps/process.Plo
    mv -f .deps/rmawindow.Tpo .deps/rmawindow.Plo
    mv -f .deps/mpi_interface.Tpo .deps/mpi_interface.Plo
    /bin/bash ../../../libtool  --tag=CXX   --mode=link mpicxx -I../../../.. -DNDEBUG -O3 -mavx  -L/home/rketka/src/boost/lib  -o libbagel_parallel.la  process.lo mpi_interface.lo rmawindow.lo resources.lo  -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -lboost_regex -lboost_unit_test_framework -lboost_serialization  
    libtool: link: ar cru .libs/libbagel_parallel.a .libs/process.o .libs/mpi_interface.o .libs/rmawindow.o .libs/resources.o 
    ar: `u' modifier ignored since `D' is the default (see `U')
    libtool: link: ranlib .libs/libbagel_parallel.a
    libtool: link: ( cd ".libs" && rm -f "libbagel_parallel.la" && ln -s "../libbagel_parallel.la" "libbagel_parallel.la" )
    make[4]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj/src/util/parallel'
    Making all in io
    make[4]: Entering directory '/home/rketka/src/bagel-1.2.2/obj/src/util/io'
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenin.lo -MD -MP -MF .deps/moldenin.Tpo -c -o moldenin.lo ../../../../src/util/io/moldenin.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenout.lo -MD -MP -MF .deps/moldenout.Tpo -c -o moldenout.lo ../../../../src/util/io/moldenout.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenio.lo -MD -MP -MF .deps/moldenio.Tpo -c -o moldenio.lo ../../../../src/util/io/moldenio.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT molden_transforms.lo -MD -MP -MF .deps/molden_transforms.Tpo -c -o molden_transforms.lo ../../../../src/util/io/molden_transforms.cc
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT dfpcmo.lo -MD -MP -MF .deps/dfpcmo.Tpo -c -o dfpcmo.lo ../../../../src/util/io/dfpcmo.cc
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT molden_transforms.lo -MD -MP -MF .deps/molden_transforms.Tpo -c ../../../../src/util/io/molden_transforms.cc  -fPIC -DPIC -o .libs/molden_transforms.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenin.lo -MD -MP -MF .deps/moldenin.Tpo -c ../../../../src/util/io/moldenin.cc  -fPIC -DPIC -o .libs/moldenin.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT dfpcmo.lo -MD -MP -MF .deps/dfpcmo.Tpo -c ../../../../src/util/io/dfpcmo.cc  -fPIC -DPIC -o .libs/dfpcmo.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenio.lo -MD -MP -MF .deps/moldenio.Tpo -c ../../../../src/util/io/moldenio.cc  -fPIC -DPIC -o .libs/moldenio.o
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/io -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DNDEBUG -O3 -mavx -MT moldenout.lo -MD -MP -MF .deps/moldenout.Tpo -c ../../../../src/util/io/moldenout.cc  -fPIC -DPIC -o .libs/moldenout.o
    mv -f .deps/dfpcmo.Tpo .deps/dfpcmo.Plo
    mv -f .deps/moldenio.Tpo .deps/moldenio.Plo
    mv -f .deps/moldenout.Tpo .deps/moldenout.Plo
    mv -f .deps/molden_transforms.Tpo .deps/molden_transforms.Plo
    mv -f .deps/moldenin.Tpo .deps/moldenin.Plo
    /bin/bash ../../../libtool  --tag=CXX   --mode=link mpicxx -I../../../.. -DNDEBUG -O3 -mavx  -L/home/rketka/src/boost/lib  -o libbagel_io.la  moldenin.lo moldenout.lo moldenio.lo molden_transforms.lo dfpcmo.lo  -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -lboost_regex -lboost_unit_test_framework -lboost_serialization  
    libtool: link: ar cru .libs/libbagel_io.a .libs/moldenin.o .libs/moldenout.o .libs/moldenio.o .libs/molden_transforms.o .libs/dfpcmo.o 
    ar: `u' modifier ignored since `D' is the default (see `U')
    libtool: link: ranlib .libs/libbagel_io.a
    libtool: link: ( cd ".libs" && rm -f "libbagel_io.la" && ln -s "../libbagel_io.la" "libbagel_io.la" )
    make[4]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj/src/util/io'
    Making all in input
    make[4]: Entering directory '/home/rketka/src/bagel-1.2.2/obj/src/util/input'
    /bin/bash ../../../libtool  --tag=CXX   --mode=compile mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/input -I../../..   -I/home/rketka/src/boost/include -I../../../.. -DBASIS_DIR=\"/usr/local/bagel/share\" -DNDEBUG -O3 -mavx -MT libbagel_input_la-input.lo -MD -MP -MF .deps/libbagel_input_la-input.Tpo -c -o libbagel_input_la-input.lo `test -f 'input.cc' || echo '../../../../src/util/input/'`input.cc
    libtool: compile:  mpicxx -DHAVE_CONFIG_H -I. -I../../../../src/util/input -I../../.. -I/home/rketka/src/boost/include -I../../../.. -DBASIS_DIR=\"/usr/local/bagel/share\" -DNDEBUG -O3 -mavx -MT libbagel_input_la-input.lo -MD -MP -MF .deps/libbagel_input_la-input.Tpo -c ../../../../src/util/input/input.cc  -fPIC -DPIC -o .libs/libbagel_input_la-input.o
    In file included from ../../../../src/util/serialization.h:46,
                     from ../../../../src/util/input/input.h:31,
                     from ../../../../src/util/input/input.cc:27:
    /home/rketka/src/boost/include/boost/property_tree/ptree_serialization.hpp: In function ‘void boost::property_tree::detail::load_children(Archive&, boost::property_tree::basic_ptree<K, D, C>&)’:
    /home/rketka/src/boost/include/boost/property_tree/ptree_serialization.hpp:66:24: error: ‘library_version_type’ in namespace ‘bsa’ does not name a type
       66 |             const bsa::library_version_type library_version(
          |                        ^~~~~~~~~~~~~~~~~~~~
    /home/rketka/src/boost/include/boost/property_tree/ptree_serialization.hpp:69:21: error: ‘library_version_type’ is not a member of ‘bsa’; did you mean ‘boost::serialization::library_version_type’?
       69 |             if(bsa::library_version_type(3) < library_version){
          |                     ^~~~~~~~~~~~~~~~~~~~
    In file included from /home/rketka/src/boost/include/boost/serialization/vector.hpp:28,
                     from ../../../../src/util/serialization.h:39,
                     from ../../../../src/util/input/input.h:31,
                     from ../../../../src/util/input/input.cc:27:
    /home/rketka/src/boost/include/boost/serialization/library_version_type.hpp:36:7: note: ‘boost::serialization::library_version_type’ declared here
       36 | class library_version_type {
          |       ^~~~~~~~~~~~~~~~~~~~
    In file included from ../../../../src/util/serialization.h:46,
                     from ../../../../src/util/input/input.h:31,
                     from ../../../../src/util/input/input.cc:27:
    /home/rketka/src/boost/include/boost/property_tree/ptree_serialization.hpp:69:47: error: ‘library_version’ was not declared in this scope
       69 |             if(bsa::library_version_type(3) < library_version){
          |                                               ^~~~~~~~~~~~~~~
    make[4]: *** [Makefile:409: libbagel_input_la-input.lo] Error 1
    make[4]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj/src/util/input'
    make[3]: *** [Makefile:462: all-recursive] Error 1
    make[3]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj/src/util'
    make[2]: *** [Makefile:625: all-recursive] Error 1
    make[2]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj/src'
    make[1]: *** [Makefile:424: all-recursive] Error 1
    make[1]: Leaving directory '/home/rketka/src/bagel-1.2.2/obj'
    make: *** [Makefile:356: all] Error 2
    

    I am using boost v.1.78.0 (latest stable release) which was compiled via bootstrap + b2 (g++ 10.3 default compiler) on Ubuntu 20.04. Not sure if this is a bug in boost or version incompatibility between bagel and boost. Any ideas to solve this issue?

    opened by rangsimanketkaew 2
  • File path in regular expression pattern may fail depending on actual path

    File path in regular expression pattern may fail depending on actual path

    In test/CMakeLists.txt line 12, a Regex pattern is being constructed from a variable that holds a system-dependent file path. If that path contains characters that are special in a Regex pattern, a failure results.

    Example: A path containing plus signs '+'

    Bottom line: Don't construct a Regex pattern from unknown text.

    opened by s13n 0
Owner
Boost.org
Boost provides free peer-reviewed portable C++ source libraries.
Boost.org
Boost.GIL - Generic Image Library | Requires C++11 since Boost 1.68

Documentation GitHub Actions AppVeyor Azure Pipelines CircleCI Regression Codecov Boost.GIL Introduction Documentation Requirements Branches Community

Boost.org 145 Jun 17, 2022
HTTP and WebSocket built on Boost.Asio in C++11

HTTP and WebSocket built on Boost.Asio in C++11 Branch Linux/OSX Windows Coverage Documentation Matrix master develop Contents Introduction Appearance

Boost.org 3.4k Jun 28, 2022
C++ peer to peer library, built on the top of boost

Breep What is Breep? Breep is a c++ bridged peer to peer library. What does that mean? It means that even though the network is constructed as a peer

Lucas Lazare 110 Jun 16, 2022
Asynchronous gRPC with Boost.Asio executors

asio-grpc This library provides an implementation of boost::asio::execution_context that dispatches work to a grpc::CompletionQueue. Making it possibl

Dennis 126 Jun 24, 2022
requests-like networking library using boost for C++

cq == C++ Requests cq == C++ Requests is a "Python Requests"-like C++ header-only library for sending HTTP requests. The library is inspired a lot by

null 11 Dec 15, 2021
Ole Christian Eidheim 735 Jun 24, 2022
Lightweight, header-only, Boost-based socket pool library

Stream-client This is a lightweight, header-only, Boost-based library providing client-side network primitives to easily organize and implement data t

Tinkoff.ru 12 May 27, 2022
Boost headers

About This repository contains a set of header files from Boost. Can be useful when using header only libraries. How to use You can easily include the

null 2 Oct 16, 2021
Packio - An asynchronous msgpack-RPC and JSON-RPC library built on top of Boost.Asio.

Header-only | JSON-RPC | msgpack-RPC | asio | coroutines This library requires C++17 and is designed as an extension to boost.asio. It will let you bu

Quentin Chateau 46 Jun 15, 2022
Boost::ASIO low-level redis client (connector)

bredis Boost::ASIO low-level redis client (connector), github gitee Features header only zero-copy (currently only for received replies from Redis) lo

Ivan Baidakou 141 Jun 6, 2022
A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio.

A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.

Ole Christian Eidheim 2.3k Jul 2, 2022
Super-project for modularized Boost

Boost C++ Libraries The Boost project provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ St

Boost.org 5k Jun 20, 2022
Minimalistic socket library inspired by Asio/Boost Asio, implemented in 1 single header file

cz-spas czspas (Small Portable Asynchronous Sockets) is minimalistic socket library inspired by Asio/Boost Asio, implemented in 1 single header file.

Rui Figueira 25 Jun 12, 2022
Level up your Beat Saber experience on Quest! AnyTweaks provides various tweaks to help boost your experience on Quest, such as Bloom, FPS Counter and more.

Need help/support? Ask in one of BSMG's support channels for Quest, or join my Discord server! AnyTweaks Level up your Beat Saber experience on Quest!

kaitlyn~ 10 Jun 19, 2022
canonical libwebsockets.org networking library

Libwebsockets Libwebsockets is a simple-to-use, MIT-license, pure C library providing client and server for http/1, http/2, websockets, MQTT and other

lws-team 3.5k Jun 25, 2022
Socket and Networking Library using msgpack.org[C++11]

netLink C++ 11 KISS principle networking library. Features: C++ 11 IPv4, IPv6 Protocols: TCP, UDP Enable/Disable blocking mode Join/Leave UDP-Multicas

Alexander Meißner 208 May 29, 2022
libsinsp, libscap, the kernel module driver, and the eBPF driver sources

falcosecurity/libs As per the OSS Libraries Contribution Plan, this repository has been chosen to be the new home for libsinsp, libscap, the kernel mo

Falco 97 Jun 22, 2022
This is a kernel module for FreeBSD to support WireGuard

WireGuard for FreeBSD This is a kernel module for FreeBSD to support WireGuard. It is being developed here before its eventual submission to FreeBSD 1

WireGuard 27 Jun 17, 2022
A Nginx module which tries to implement proxy wasm ABI in Nginx.

Status This library is under construction. Description A Nginx module which tries to implement proxy wasm ABI in Nginx. Install dependencies Download

API7 71 Jun 28, 2022