Header only routines for dealing with strongly-typed, layered data structures.
Go to file
Greg S. 05184c4d0f Initial comp9ile fixes/updates. 2022-05-13 12:52:41 -04:00
include/e6l Initial comp9ile fixes/updates. 2022-05-13 12:52:41 -04:00
lib Add ICMP basics and test. 2020-10-04 10:52:55 -04:00
test Initial comp9ile fixes/updates. 2022-05-13 12:52:41 -04:00
.gitignore Initial build + test. 2020-09-26 17:45:03 -04:00
CMakeLists.txt Initial comp9ile fixes/updates. 2022-05-13 12:52:41 -04:00
LICENSE-2.0 Initial creation of generic packet layering. 2020-09-26 17:30:51 -04:00
README.rst Add some documentation-y comments. 2020-10-04 11:31:20 -04:00

README.rst

Routines to destructure a byte buffer into 'protocol structures' that directly read and write to the underlying buffer. Header only.

Intended to support composition of network protocol headers in a type-safe and structured manner.

Depends on e6l.serial. (Uses the e6l::span and e6l::byte compatibility types.)

CI Status:

Status

Description

Link

mainci

Top-level CI job

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

clang14

Clang in C++14 mode (amd64)

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

clang17

Clang in C++17 mode (amd64)

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

clang20

Clang in C++20 mode (amd64)

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

gcc14

GCC in C++14 mode (amd64)

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

gcc17

GCC in C++17 mode (amd64)

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

gcc20

GCC in C++20 mode (amd64)

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

To build tests (requires Catch2), use -DENABLE_TEST=ON when configuring with CMake.

Exposes the e6l::packet target.

See e6l/packet.hpp for basic usage documentation, or the tests in test/ for examples.