reflectcppv0.25.0
- Updated
A C++ library for serialization and deserialization using reflection. Supports JSON, Avro, BSON, Cap'n Proto, CBOR, CSV, flexbuffers, msgpack, parquet, TOML, UBJSON, XML, YAML.
- Project website: https://github.com/getml/reflect-cpp/
#Usage
reflect-cpp provides CMake targets:
find_package(reflectcpp CONFIG REQUIRED)
target_link_libraries(main PRIVATE reflectcpp::reflectcpp)#Supported Platforms
All platforms supported.
#Features
No default features.
#boost-serialization
Enable Boost.Serialization support
Dependencies:
- boost-serialization
>= v1.74.0
and 59 transitive dependencies:
- boost-algorithm
>= v1.92.0(through boost-date-time) - boost-align
>= v1.92.0(through boost-atomic) - boost-array
>= v1.92.0(through boost-serialization) - boost-assert
>= v1.92.0(through boost-array) - boost-atomic
>= v1.92.0(through boost-thread) - boost-bind
>= v1.92.0(through boost-function) - boost-chrono
>= v1.92.0(through boost-thread) - boost-cmake
>= v1.92.0(through boost-assert) - boost-compat
>= v1.92.0(through boost-system) - boost-concept-check
>= v1.92.0(through boost-iterator) - boost-config
>= v1.92.0(through boost-assert) - boost-container
>= v1.92.0(through boost-thread) - boost-container-hash
>= v1.92.0(through boost-fusion) - boost-conversion
>= v1.92.0(through boost-range) - boost-core
>= v1.92.0(through boost-serialization) - boost-date-time
>= v1.92.0(through boost-thread) - boost-describe
>= v1.92.0(through boost-container-hash) - boost-detail
>= v1.92.0(through boost-serialization) - boost-endian
>= v1.92.0(through boost-spirit) - boost-exception
>= v1.92.0(through boost-algorithm) - boost-function
>= v1.92.0(through boost-serialization) - boost-function-types
>= v1.92.0(through boost-fusion) - boost-fusion
>= v1.92.0(through boost-iterator) - boost-headers
>= v1.92.0(through boost-config) - boost-integer
>= v1.92.0(through boost-serialization) - boost-intrusive
>= v1.92.0(through boost-container) - boost-io
>= v1.92.0(through boost-serialization) - boost-iterator
>= v1.92.0(through boost-serialization) - boost-lexical-cast
>= v1.92.0(through boost-date-time) - boost-move
>= v1.92.0(through boost-serialization) - boost-mp11
>= v1.92.0(through boost-describe) - boost-mpl
>= v1.92.0(through boost-function-types) - boost-numeric-conversion
>= v1.92.0(through boost-date-time) - boost-optional
>= v1.92.0(through boost-iterator) - boost-phoenix
>= v1.92.0(through boost-spirit) - boost-pool
>= v1.92.0(through boost-spirit) - boost-predef
>= v1.92.0(through boost-mpl) - boost-preprocessor
>= v1.92.0(through boost-detail) - boost-proto
>= v1.92.0(through boost-phoenix) - boost-range
>= v1.92.0(through boost-proto) - boost-ratio
>= v1.92.0(through boost-chrono) - boost-regex
>= v1.92.0(through boost-range) - boost-smart-ptr
>= v1.92.0(through boost-serialization) - boost-spirit
>= v1.92.0(through boost-serialization) - boost-static-assert
>= v1.92.0(through boost-spirit) - boost-system
>= v1.92.0(through boost-chrono) - boost-thread
>= v1.92.0(through boost-spirit) - boost-throw-exception
>= v1.92.0(through boost-array) - boost-tokenizer
>= v1.92.0(through boost-date-time) - boost-tuple
>= v1.92.0(through boost-fusion) - boost-type-index
>= v1.92.0(through boost-variant) - boost-type-traits
>= v1.92.0(through boost-detail) - boost-typeof
>= v1.92.0(through boost-fusion) - boost-uninstall
>= v1.92.0(through boost-cmake) - boost-unordered
>= v1.92.0(through boost-algorithm) - boost-utility
>= v1.92.0(through boost-mpl) - boost-variant
>= v1.92.0(through boost-spirit) - boost-variant2
>= v1.92.0(through boost-system) - boost-winapi
>= v1.92.0(through boost-pool)
Host Dependencies:
3 transitive dependencies:
- vcpkg-boost (through boost-cmake)
- vcpkg-cmake (through vcpkg-boost)
- vcpkg-cmake-config (through vcpkg-boost)
#bson
Support for the BSON format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through libbson)
- vcpkg-cmake-config (through libbson)
#capnproto
Support for the Cap'n Proto format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through capnproto)
- vcpkg-cmake-config (through capnproto)
#cbor
Support for the CBOR format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through jsoncons)
- vcpkg-cmake-config (through jsoncons)
#cereal
Enable Cereal support
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through cereal)
- vcpkg-cmake-config (through cereal)
#csv
Enable CSV support
Dependencies:
arrow
>= v21.0.0Features:
csv,filesystem,json,parquet
and 79 transitive dependencies:
- abseil (through re2)
- boost-algorithm
>= v1.92.0(through boost-date-time) - boost-align
>= v1.92.0(through boost-atomic) - boost-array
>= v1.92.0(through boost-algorithm) - boost-assert
>= v1.92.0(through boost-filesystem) - boost-atomic
>= v1.92.0(through boost-filesystem) - boost-bind
>= v1.92.0(through boost-algorithm) - boost-charconv
>= v1.92.0(through boost-locale) - boost-chrono
>= v1.92.0(through boost-thread) - boost-cmake
>= v1.92.0(through boost-assert) - boost-compat
>= v1.92.0(through boost-system) - boost-concept-check
>= v1.92.0(through boost-iterator) - boost-config
>= v1.92.0(through boost-assert) - boost-container
>= v1.92.0(through boost-lexical-cast) - boost-container-hash
>= v1.92.0(through boost-filesystem) - boost-conversion
>= v1.92.0(through boost-range) - boost-core
>= v1.92.0(through boost-align) - boost-date-time (through thrift)
- boost-describe
>= v1.92.0(through boost-container-hash) - boost-detail
>= v1.92.0(through boost-filesystem) - boost-dynamic-bitset
>= v1.92.0(through boost-random) - boost-exception
>= v1.92.0(through boost-algorithm) - boost-filesystem (through arrow)
- boost-function
>= v1.92.0(through boost-algorithm) - boost-function-types
>= v1.92.0(through boost-fusion) - boost-fusion
>= v1.92.0(through boost-iterator) - boost-headers
>= v1.92.0(through boost-config) - boost-integer
>= v1.92.0(through boost-multiprecision) - boost-intrusive
>= v1.92.0(through boost-container) - boost-io
>= v1.92.0(through boost-filesystem) - boost-iterator
>= v1.92.0(through boost-filesystem) - boost-lexical-cast
>= v1.92.0(through boost-multiprecision) - boost-locale (through thrift)
- boost-math
>= v1.92.0(through boost-multiprecision) - boost-move
>= v1.92.0(through boost-intrusive) - boost-mp11
>= v1.92.0(through boost-describe) - boost-mpl
>= v1.92.0(through boost-function-types) - boost-multiprecision (through arrow)
- boost-numeric-conversion
>= v1.92.0(through boost-date-time) - boost-optional
>= v1.92.0(through boost-iterator) - boost-predef
>= v1.92.0(through boost-atomic) - boost-preprocessor
>= v1.92.0(through boost-atomic) boost-random
>= v1.92.0(through boost-math)Platforms:
!uwp- boost-range
>= v1.92.0(through boost-algorithm) - boost-ratio
>= v1.92.0(through boost-chrono) - boost-regex
>= v1.92.0(through boost-range) - boost-scope
>= v1.92.0(through boost-filesystem) - boost-scope-exit (through thrift)
- boost-smart-ptr
>= v1.92.0(through boost-filesystem) - boost-static-assert
>= v1.92.0(through boost-date-time) - boost-system
>= v1.92.0(through boost-filesystem) - boost-thread
>= v1.92.0(through boost-locale) - boost-throw-exception
>= v1.92.0(through boost-core) - boost-tokenizer
>= v1.92.0(through boost-date-time) - boost-tuple
>= v1.92.0(through boost-fusion) - boost-type-traits
>= v1.92.0(through boost-atomic) - boost-typeof
>= v1.92.0(through boost-fusion) - boost-uninstall
>= v1.92.0(through boost-cmake) - boost-unordered
>= v1.92.0(through boost-algorithm) - boost-utility
>= v1.92.0(through boost-mpl) - boost-uuid (through thrift)
- boost-variant2
>= v1.92.0(through boost-system) - boost-winapi
>= v1.92.0(through boost-atomic) - brotli (through arrow)
- bzip2 (through arrow)
- gflags (through arrow)
- libevent (through thrift)
libiconv (through boost-locale)
Platforms:
!uwp & !windows & !mingw- lz4 (through arrow)
- openssl (through arrow)
- rapidjson (through arrow)
- re2 (through arrow)
- snappy (through arrow)
- thrift (through arrow)
- utf8proc (through arrow)
- xsimd (through arrow)
- zlib (through thrift)
- zstd (through arrow)
Host Dependencies:
5 transitive dependencies:
- vcpkg-boost (through boost-cmake)
- vcpkg-cmake (through vcpkg-boost)
- vcpkg-cmake-config (through vcpkg-boost)
- vcpkg-cmake-get-vars (through openssl)
- vcpkg-make (through libiconv)
#flexbuffers
Support for the flexbuffers format (part of flatbuffers)
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through flatbuffers)
- vcpkg-cmake-config (through flatbuffers)
#msgpack
Support for the msgpack format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through msgpack-c)
- vcpkg-cmake-config (through msgpack-c)
#parquet
Enable parquet support
Dependencies:
arrow
>= v21.0.0Features:
csv,filesystem,json,parquet
and 79 transitive dependencies:
- abseil (through re2)
- boost-algorithm
>= v1.92.0(through boost-date-time) - boost-align
>= v1.92.0(through boost-atomic) - boost-array
>= v1.92.0(through boost-algorithm) - boost-assert
>= v1.92.0(through boost-filesystem) - boost-atomic
>= v1.92.0(through boost-filesystem) - boost-bind
>= v1.92.0(through boost-algorithm) - boost-charconv
>= v1.92.0(through boost-locale) - boost-chrono
>= v1.92.0(through boost-thread) - boost-cmake
>= v1.92.0(through boost-assert) - boost-compat
>= v1.92.0(through boost-system) - boost-concept-check
>= v1.92.0(through boost-iterator) - boost-config
>= v1.92.0(through boost-assert) - boost-container
>= v1.92.0(through boost-lexical-cast) - boost-container-hash
>= v1.92.0(through boost-filesystem) - boost-conversion
>= v1.92.0(through boost-range) - boost-core
>= v1.92.0(through boost-align) - boost-date-time (through thrift)
- boost-describe
>= v1.92.0(through boost-container-hash) - boost-detail
>= v1.92.0(through boost-filesystem) - boost-dynamic-bitset
>= v1.92.0(through boost-random) - boost-exception
>= v1.92.0(through boost-algorithm) - boost-filesystem (through arrow)
- boost-function
>= v1.92.0(through boost-algorithm) - boost-function-types
>= v1.92.0(through boost-fusion) - boost-fusion
>= v1.92.0(through boost-iterator) - boost-headers
>= v1.92.0(through boost-config) - boost-integer
>= v1.92.0(through boost-multiprecision) - boost-intrusive
>= v1.92.0(through boost-container) - boost-io
>= v1.92.0(through boost-filesystem) - boost-iterator
>= v1.92.0(through boost-filesystem) - boost-lexical-cast
>= v1.92.0(through boost-multiprecision) - boost-locale (through thrift)
- boost-math
>= v1.92.0(through boost-multiprecision) - boost-move
>= v1.92.0(through boost-intrusive) - boost-mp11
>= v1.92.0(through boost-describe) - boost-mpl
>= v1.92.0(through boost-function-types) - boost-multiprecision (through arrow)
- boost-numeric-conversion
>= v1.92.0(through boost-date-time) - boost-optional
>= v1.92.0(through boost-iterator) - boost-predef
>= v1.92.0(through boost-atomic) - boost-preprocessor
>= v1.92.0(through boost-atomic) boost-random
>= v1.92.0(through boost-math)Platforms:
!uwp- boost-range
>= v1.92.0(through boost-algorithm) - boost-ratio
>= v1.92.0(through boost-chrono) - boost-regex
>= v1.92.0(through boost-range) - boost-scope
>= v1.92.0(through boost-filesystem) - boost-scope-exit (through thrift)
- boost-smart-ptr
>= v1.92.0(through boost-filesystem) - boost-static-assert
>= v1.92.0(through boost-date-time) - boost-system
>= v1.92.0(through boost-filesystem) - boost-thread
>= v1.92.0(through boost-locale) - boost-throw-exception
>= v1.92.0(through boost-core) - boost-tokenizer
>= v1.92.0(through boost-date-time) - boost-tuple
>= v1.92.0(through boost-fusion) - boost-type-traits
>= v1.92.0(through boost-atomic) - boost-typeof
>= v1.92.0(through boost-fusion) - boost-uninstall
>= v1.92.0(through boost-cmake) - boost-unordered
>= v1.92.0(through boost-algorithm) - boost-utility
>= v1.92.0(through boost-mpl) - boost-uuid (through thrift)
- boost-variant2
>= v1.92.0(through boost-system) - boost-winapi
>= v1.92.0(through boost-atomic) - brotli (through arrow)
- bzip2 (through arrow)
- gflags (through arrow)
- libevent (through thrift)
libiconv (through boost-locale)
Platforms:
!uwp & !windows & !mingw- lz4 (through arrow)
- openssl (through arrow)
- rapidjson (through arrow)
- re2 (through arrow)
- snappy (through arrow)
- thrift (through arrow)
- utf8proc (through arrow)
- xsimd (through arrow)
- zlib (through thrift)
- zstd (through arrow)
Host Dependencies:
5 transitive dependencies:
- vcpkg-boost (through boost-cmake)
- vcpkg-cmake (through vcpkg-boost)
- vcpkg-cmake-config (through vcpkg-boost)
- vcpkg-cmake-get-vars (through openssl)
- vcpkg-make (through libiconv)
#toml
Support for the TOML format
Host Dependencies:
4 transitive dependencies:
- vcpkg-cmake (through vcpkg-cmake-get-vars)
- vcpkg-cmake-config (through tomlplusplus)
- vcpkg-cmake-get-vars (through vcpkg-tool-meson)
- vcpkg-tool-meson (through tomlplusplus)
#ubjson
Support for the UBJSON format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through jsoncons)
- vcpkg-cmake-config (through jsoncons)
#xml
Support for the XML format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through pugixml)
- vcpkg-cmake-config (through pugixml)
#yaml
Support for the YAML format
Host Dependencies:
2 transitive dependencies:
- vcpkg-cmake (through yaml-cpp)
- vcpkg-cmake-config (through yaml-cpp)
#Host Tool For
No ports use this.
#Contributors
Manuel Bellersen
Dr. Patrick Urbanke (劉自成)
toge