C++14+ integer to byte serialization and deserialization library.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Greg S. 9aa8c89a0c Compilation updates/fixes. 3 months ago
cmake Initial commit 2 years ago
include/e6l Compilation updates/fixes. 3 months ago
test Compilation updates/fixes. 3 months ago
.clang-tidy Initial commit 2 years ago
.gitignore Initial commit 2 years ago
CMakeLists.txt Compilation updates/fixes. 3 months ago
LICENSE-2.0 Initial commit 2 years ago
README.rst Remove reference to the wide_integer library, which is no longer used. 2 years ago

README.rst

A C++14 (and higher) library for serialization and deserialization of byte sequences to and from (unsigned) integers.

CI Status:

Status

Description

Link

mainci

Top-level CI job

https://ci.enimihil.net/jobs/e6l.serial

clang14

Clang in C++14 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-clang-c++14

clang17

Clang in C++17 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-clang-c++17

clang20

Clang in C++20 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-clang-c++20

gcc14

GCC in C++14 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-gcc-c++14

gcc17

GCC in C++17 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-gcc-c++17

gcc20

GCC in C++20 mode (amd64)

https://ci.enimihil.net/jobs/e6l.serial-gcc-c++20

Feature detection (of library features) is done through the C++20 standardized feature detection macros.

When using C++14 this library requires the Guidlines Support Library (GSL) gsl::span and gsl::byte.

When using C++17, std::byte is automatically used and only gsl::span is required.

For C++20 std::span and std::byte are both automatically used.

To use, either install system-wide (cmake; make; make install) or include into your project as a subdirectory.

To 'link' for your targets that use it:

target_link_libraries(<your target> e6l::serial)

If installed outside your project:

find_package(e6l.serial)

If 'installed' as a subdirectory:

add_subdirectory(path/to/e6.serial)

Read the comment(s) in the header (e6l/serial.hpp) for usage, or see the unit tests in test/.

Building the tests requires Catch2, and is enabled with -DENABLE_TEST=ON.