Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
4638c9f
Began developing cereal
liuzicheng1987 Mar 29, 2026
6bba87f
More fixes
liuzicheng1987 Mar 29, 2026
4d8be0e
More fixes
liuzicheng1987 Mar 29, 2026
14af0f3
Added support for strings
liuzicheng1987 Mar 29, 2026
2373ced
Fixed union
liuzicheng1987 Mar 30, 2026
82f1913
Minor fixes
liuzicheng1987 Mar 30, 2026
adb818c
More tests
liuzicheng1987 Mar 30, 2026
be0423b
Added support for literals
liuzicheng1987 Mar 30, 2026
45e9ab1
Added support for bytestrings
liuzicheng1987 Mar 30, 2026
9fb0caf
Added tests for generic
liuzicheng1987 Mar 30, 2026
4541411
Added cereal to the benchmarks
liuzicheng1987 Mar 30, 2026
01fc4e7
Outsourced to src files
liuzicheng1987 Mar 30, 2026
93bd6da
Added cereal to the github actions pipeline
liuzicheng1987 Mar 30, 2026
9c9014d
Fixed typo
liuzicheng1987 Mar 30, 2026
58afb32
Fixed documentation
liuzicheng1987 Mar 30, 2026
c1e63d3
Fixed documentation
liuzicheng1987 Mar 31, 2026
abdef1b
Minor fixes
liuzicheng1987 Mar 31, 2026
9745c9d
Do not convert name to std::string
liuzicheng1987 Mar 31, 2026
b296c83
Get rid of the tmp folder
liuzicheng1987 Mar 31, 2026
9d55bea
Fixed typo
liuzicheng1987 Mar 31, 2026
3cf04d0
emplace_back -> push_back
liuzicheng1987 Mar 31, 2026
dacad20
Revert "emplace_back -> push_back"
liuzicheng1987 Mar 31, 2026
d06d5f6
Move the errs
liuzicheng1987 Mar 31, 2026
efaaa33
Revert "Move the errs"
liuzicheng1987 Mar 31, 2026
df70f1c
Use ptr_cast instead of std::launder
liuzicheng1987 Mar 31, 2026
45f1336
Revert "Use ptr_cast instead of std::launder"
liuzicheng1987 Apr 1, 2026
d6a91c9
Declare Result.hpp a system header to suppress warnings
liuzicheng1987 Apr 1, 2026
baa4d4e
Next attempt
liuzicheng1987 Apr 1, 2026
88e6fa5
Next attempt
liuzicheng1987 Apr 1, 2026
01f4907
Disable warning
liuzicheng1987 Apr 1, 2026
32bd925
Next attempt
liuzicheng1987 Apr 1, 2026
86239cf
Next attempt
liuzicheng1987 Apr 1, 2026
0634940
Revert "Next attempt"
liuzicheng1987 Apr 1, 2026
7d77c8f
Collect errors as raw string
liuzicheng1987 Apr 1, 2026
52de80b
name as string_view
liuzicheng1987 Apr 1, 2026
8dedd2e
Get rid of field name altogeher (temp fix)
liuzicheng1987 Apr 1, 2026
dd5eaba
name not constexpr
liuzicheng1987 Apr 1, 2026
f887fa3
name constexpr
liuzicheng1987 Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "PARQUET", "TOML", "UBJSON", "XML", "YAML", "benchmarks", "headers"]
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "CEREAL", "FLEXBUFFERS", "MSGPACK", "PARQUET", "TOML", "UBJSON", "XML", "YAML", "benchmarks", "headers"]
compiler: [llvm, gcc]
compiler-version: [11, 12, 13, 14, 16, 17, 18]
cxx: [20, 23]
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/windows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "FLEXBUFFERS", "MSGPACK", "PARQUET", "TOML", "UBJSON", "XML", "YAML", "benchmarks"]
format: ["JSON", "AVRO", "CAPNPROTO", "CBOR", "CEREAL", "FLEXBUFFERS", "MSGPACK", "PARQUET", "TOML", "UBJSON", "XML", "YAML", "benchmarks"]
name: "windows-msvc (${{ matrix.format }})"
concurrency:
group: "windows-${{ github.ref }}-${{ github.job }}-${{ matrix.format }}"
Expand Down
42 changes: 36 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ option(REFLECTCPP_AVRO "Enable AVRO support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_BSON "Enable BSON support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_CAPNPROTO "Enable Cap’n Proto support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_CBOR "Enable CBOR support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_CEREAL "Enable Cereal support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_CSV "Enable CSV support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_FLEXBUFFERS "Enable flexbuffers support" ${REFLECTCPP_ALL_FORMATS})
option(REFLECTCPP_MSGPACK "Enable msgpack support" ${REFLECTCPP_ALL_FORMATS})
Expand Down Expand Up @@ -49,6 +50,7 @@ if(REFLECTCPP_BUILD_BENCHMARKS)
set(REFLECTCPP_BSON ON CACHE BOOL "" FORCE)
set(REFLECTCPP_CAPNPROTO ON CACHE BOOL "" FORCE)
set(REFLECTCPP_CBOR ON CACHE BOOL "" FORCE)
set(REFLECTCPP_CEREAL ON CACHE BOOL "" FORCE)
set(REFLECTCPP_FLEXBUFFERS ON CACHE BOOL "" FORCE)
set(REFLECTCPP_MSGPACK ON CACHE BOOL "" FORCE)
set(REFLECTCPP_XML ON CACHE BOOL "" FORCE)
Expand All @@ -57,11 +59,25 @@ if(REFLECTCPP_BUILD_BENCHMARKS)
set(REFLECTCPP_YAML ON CACHE BOOL "" FORCE)
endif()

if (REFLECTCPP_BUILD_TESTS OR REFLECTCPP_BUILD_BENCHMARKS OR REFLECTCPP_CHECK_HEADERS OR
(REFLECTCPP_JSON AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) OR REFLECTCPP_AVRO OR
REFLECTCPP_BSON OR REFLECTCPP_CAPNPROTO OR REFLECTCPP_CBOR OR REFLECTCPP_CSV OR
REFLECTCPP_FLEXBUFFERS OR REFLECTCPP_MSGPACK OR REFLECTCPP_PARQUET OR REFLECTCPP_XML OR
REFLECTCPP_TOML OR REFLECTCPP_UBJSON OR REFLECTCPP_YAML)
if (
REFLECTCPP_BUILD_TESTS OR
REFLECTCPP_BUILD_BENCHMARKS OR
REFLECTCPP_CHECK_HEADERS OR
(REFLECTCPP_JSON AND NOT REFLECTCPP_USE_BUNDLED_DEPENDENCIES) OR
REFLECTCPP_AVRO OR
REFLECTCPP_BSON OR
REFLECTCPP_CAPNPROTO OR
REFLECTCPP_CBOR OR
REFLECTCPP_CEREAL OR
REFLECTCPP_CSV OR
REFLECTCPP_FLEXBUFFERS OR
REFLECTCPP_MSGPACK OR
REFLECTCPP_PARQUET OR
REFLECTCPP_XML OR
REFLECTCPP_TOML OR
REFLECTCPP_UBJSON OR
REFLECTCPP_YAML
)
# enable vcpkg per default if features other than JSON are required
set(REFLECTCPP_USE_VCPKG_DEFAULT ON)
endif()
Expand Down Expand Up @@ -98,7 +114,11 @@ if (REFLECTCPP_USE_VCPKG)
if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS)
list(APPEND VCPKG_MANIFEST_FEATURES "cbor")
endif()


if (REFLECTCPP_CEREAL OR REFLECTCPP_CHECK_HEADERS)
list(APPEND VCPKG_MANIFEST_FEATURES "cereal")
endif()

if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS)
list(APPEND VCPKG_MANIFEST_FEATURES "csv")
endif()
Expand Down Expand Up @@ -312,6 +332,16 @@ if (REFLECTCPP_CBOR OR REFLECTCPP_CHECK_HEADERS)
include_directories(PUBLIC ${jsoncons_INCLUDE_DIRS})
endif ()

if (REFLECTCPP_CEREAL OR REFLECTCPP_CHECK_HEADERS)
list(APPEND REFLECT_CPP_SOURCES
src/reflectcpp_cereal.cpp
)
if (NOT TARGET cereal::cereal)
find_package(cereal CONFIG REQUIRED)
endif ()
target_link_libraries(reflectcpp PUBLIC cereal::cereal)
endif()

if (REFLECTCPP_CSV OR REFLECTCPP_CHECK_HEADERS)
if (NOT TARGET Arrow)
find_package(Arrow CONFIG REQUIRED)
Expand Down
Loading
Loading