A generic low-latency C++20 event/stream processing engine.
See docs/DESIGN.md for the architectural decision records.
Current features:
- Event-driven pipeline architecture
- Runtime-polymorphic operator chain
- TickEvent and AudioSample event support
- VWAP, SMA, and RMS operators
- NASDAQ ITCH 5.0 Order Executed With Price source
- WAV PCM audio source for 16-bit mono 44.1/48 kHz files
- Unit tests and Google Benchmark microbenchmarks
From the build directory:
cd build
ctest --output-on-failureOr from the project root:
cmake --build build -j
cd build && ctest --output-on-failureBuild first:
cmake --build build -jRun benchmarks from the project root:
./build/benchmarks/engine_benchSome ITCH benchmarks require a NASDAQ ITCH input file. Set LOWLAT_ITCH_FILE before running:
export LOWLAT_ITCH_FILE=/data/file.itch
./build/benchmarks/engine_benchA NASDAQ ITCH sample file can be downloaded from the official NASDAQ sample data page:
Download NASDAQ ITCH sample data
If LOWLAT_ITCH_FILE is not set, the ITCH file-source benchmarks will be skipped.