Collection of libs and tools for low latency applications
This repo is a mix of documentation and implementation.
It is a cmake project with dependencies defined in .cmake
To build the project:
cd qtradr
mkdir .build-release && cd .build-release
cmake .. && make -j8
ctest .We also have benchmark tests, build and run it based on the need.
All benchmark tests in the repo have *.bt.cpp extension.
-
- UDP Server
- UDP Client
- TCP Server
- TCP Client
- Multicast send
- Multicast recv
- Tls Client (OpenSSL)
- broadcast
- broadcast
- HTTP Client
- WebSocket Client
- RestAPI Client
-
- select vs. poll vs. epoll
- epoll
- io_uring
-
- Spinlock
- Lock free bounded queue SPSC
- Lock free bounded queue MPMC
- Lock free unbounded queue SPSC
- Lock free queue MPSC
- Lock free queue SPMC
- Lock free stack SPSC
- POSIX Thread pool with affinity
-
- arena allocator
- stack allocator
- slab allocator
- buddy allocator
- fixed-size blocks allocator
- ...
-
IPC
- Shared memory
- Signal
-
- clock
- watchdog
-
OS (bash script with all linux config related setup)
- CPU isolation
- memory configuration
- CPU set fix clock speed
- ... other OS level optimization
-
CI
- Latency profile
- Jitter stats
- address sanitiser
- thread sanitiser
- unit tests
- behave tests
-
misc
-
Trading
- OrderBook
- Exchange protocol
- Coinbase