A C++ utility library for e2sar project.
- C++17 compatible compiler
- Meson build system (>= 0.55.0)
- Boost (>= 1.89.0)
- pthreads
- gRPC (>= 1.74.1)
- Protocol Buffers
# Configure the build
meson setup build/
# Compile
meson compile -C build/
# Run tests (if enabled)
meson test -C build/
# Install
meson install -C build/After making code changes, always run the loopback integration test:
# Run the loopback test (sender + receiver over localhost)
./tests/test_loopback.sh
# With custom options
./tests/test_loopback.sh --timeout 60 --bufsize 2 --files 3The test script:
- Starts a receiver on the loopback interface
- Runs the sender with parallel file processing
- Verifies all buffers were received without errors
- Reports PASS/FAIL status
Options:
--timeout N- Receiver timeout in seconds (default: 30)--bufsize N- Batch size in MB (default: 1)--mtu N- MTU size (default: 9000)--files N- Number of parallel file streams (default: 2)
enable_tests: Build and run tests (default: true)enable_examples: Build example programs (default: false)enable_docs: Build documentation (default: false)
During initial setup:
meson setup build/ -Denable_tests=false -Denable_examples=trueAfter setup (reconfigure existing build):
meson configure build/ -Denable_tests=false -Denable_examples=trueView all options and current values:
meson configure build/Common built-in Meson options:
# Change build type (debug, debugoptimized, release)
meson setup build/ -Dbuildtype=release
# Change C++ standard
meson setup build/ -Dcpp_std=c++20
# Combine multiple options
meson setup build/ -Dbuildtype=release -Denable_tests=false -Dcpp_std=c++20After reconfiguring, recompile with:
meson compile -C build/.
├── include/ # Public headers
├── src/ # Source files
├── tests/ # Unit tests
├── docs/ # Documentation
└── build/ # Build directory (generated)
TBD