Releases: aws-samples/trading-latency-benchmark
Releases Β· aws-samples/trading-latency-benchmark
v1.0.0
Release v1.0.0
What's Changed
- update macos base image for build workflow (22ef8af)
- add type to instance list (11f21af)
- change benchmark dir to default (18a2b6f)
- limit test client runtime by test_size config value, support tcp ping test with payload size, support testing multiple endpoints with ansible playbook, generate report for multiple endpoints (ad467dd)
- add base stack for 2 flavors of cdk stack (55c4d74)
- adapt tune_os playbook to graviton and amd (c410312)
- set memory and isolated cores dynamically in start scripts (11642c2)
- clean up hunting stack (4167a8e)
- fix histogram precision (135aaa3)
- increase histogram precision (9d90b31)
- remove formatting to milliseconds and add 10th percentile (3f9ea93)
- fix(cdk): implement CloudFormation tag-based instance tracking for reliable deletion (74b25ac)
- Fixed microsecond precision loss in millisecond latency reporting (bf993db)
- Add latency hunting deployment with cross-region VPC peering support (4c1e01a)
- Add OS-tuned AMI builder feature and enhance OS tuning (c5f804d)
- Modify build workflow for dynamic linking and DLLs (e0e0490)
- Refactor release workflow for dynamic linking (a630934)
- chore(deps): bump actions/download-artifact from 4 to 6 (23490cc)
- Add multi-platform build support for x86_64 and ARM64 (e718047)
- cpp-client: implemented histogram reset between reporting intervals, removed duplicated print, increased max hist value (0359918)
- add config to release (b3a34fc)
- migrate from OpenSSL to rustls (04d302f)
- CI/CD Improvements - New workflows for PR builds and automated releases (b5763d7)
- update java dependencies (9bd892f)
- fix(jna): resolve UnsatisfiedLinkError on macOS by updating JNA and Affinity (721fa8f)
- implement cross-platform compatibility and upgrade to Netty 4.2.7 (c448824)
- ci: scope down permissions for build-pull-request.yml (074660a)
- ci: scope down permissions for close-stale-issues.yml (b3eb08e)
- ci: scope down permissions for extract-snippets.yml (91a1112)
- ci: scope down permissions for closed-issue-message.yml (10aae5f)
- ci: scope down permissions for extract-snippets-dryrun.yml (51393c1)
- chore(deps): bump actions/setup-node from 4 to 6 (d3a625e)
- Updated the maven zip file version from 3.9.7 to 3.9.11. And added Benchmark start command in the README file (4efcf6b)
- chore(deps): bump tj-actions/changed-files from 46 to 47 (0f8e285)
- chore(deps): bump actions/setup-python from 5 to 6 (bd62398)
- chore(deps): bump actions/setup-dotnet from 4 to 5 (5716b4e)
- chore(deps): bump actions/setup-go from 5 to 6 (495309e)
- chore(deps): bump actions/setup-java from 4 to 5 (0374e5f)
- Added EC2 Timestamping Programs (86e9c48)
- chore(deps): bump actions/checkout from 4 to 5 (985d784)
- README.md (5904db8)
- Eliminated 100ΞΌs sleep, Lock-free frame counter, Busy polling, Branch prediction, Memory prefetching, Cache-aligned data, Lock-free packet buffer pool, Relaxed memory ordering, CPU affinity, Thread-local destination cache, Optimized thread creation, Zero-copy packet processing, Fast UDP payload extraction, Inline packet processing (fc1d8a1)
- initial runing echo client server af_xdp demo (174fd1f)
- Started AF_XDP Zero Copy benchmarking demo (2f9429e)
- chore(deps): bump aws-cdk-lib from 2.189.0 to 2.189.1 in /deployment/cdk (1a4e071)
- Update README.md (f84f3b9)
- Update README.md (7689553)
- Modified README.md for HFT Client sequence diagram (ab0d5af)
- Added HFT client sequence diagram to README.md (3c27120)
- fix escape chars in tune_os.yaml (bbacd8b)
- Delete deployment/ansible/tune_os_2.yaml (bdbc4a2)
- Enhance network performance with Epoll and socket optimizations (5c583c1)
- Fix instance type parsing implementation (fe84e58)
- Simplify instance type parsing to support all EC2 instance types (57e2da9)
- Refactor project for trading latency benchmarking (0cd4083)
- update README.md (a1f6217)
- feat: enhance latency benchmarking and instance support (72fd2cf)
- chore(deps): bump crossbeam-channel in /mock-trading-server (bc628bc)
- chore(deps): bump aws-cdk-lib from 2.133.0 to 2.189.0 in /deployment/cdk (d4bd436)
- add perf related tools to provision playbook (3aabd58)
- disable amazon-ssm-agent in tune_os (238f043)
- fix regex issue in the tune_os.yaml (b69c9f5)
- Optimize trading latency benchmark environment (424f12c)
- Modernize codebase and improve robustness (045cc58)
- Improve documentation and enhance latency reporting scripts (1ab6908)
- Update restart_mock_trading_server.yaml (f8186f6)
- chore(deps): bump tj-actions/changed-files from 45 to 46 (5da2a40)
- chore(deps): bump aws-actions/closed-issue-message from 1 to 2 (1749f58)
- make ssl and uri configurable for cpp-client (d8971bf)
- update dependencies (19c8378)
- change cipher suite and use boringssl (6b7cf04)
- Update provision_ec2.yaml (2be4b3d)
- clean up (31e5039)
- update CMakeList to fetch dependencies (a3a9313)
- chore(deps): bump tj-actions/changed-files from 44 to 45 (2a1c6b7)
- Update ExchangeClient.java (ae7e2ce)
- Update ExchangeClient.java (cbdcb9e)
- implemented output.log parser (2e92bf0)
- Update provision_ec2.yaml (ce552f2)
- clean up and refactor (4a077d0)
- chore(deps): bump h2 from 0.3.24 to 0.3.26 in /mock-trading-server (c2fa864)
- chore(deps): bump tj-actions/changed-files from 43 to 44 (219c2b6)
- support for measuring rtt of endpoints with host and port (ab6bae8)
- add CDK infra for ping test (9a0422b)
- make ping client support multiple hosts seperated by comma (6f32de5)
- implement ping latency (006ca8c)
- chore(deps): bump tj-actions/changed-files from 41 to 43 (16a811b)
- Add HdrHistogram as a submodule (a86ce7f)
- add C++ client as an alternative to Java client (d79c368)
- chore(deps): bump mio from 0.8.10 to 0.8.11 in /mock-trading-server (d51d555)
- support for openssl 1.1.1e and qat_sw for Intel based instances (2d70576)
- Update README.md (9fb82b0)
- Update README.md (69c9e66)
- Update README.md (4a444c6)
- Support testing over encrypted connections like wss and https (1b8fe03)
- ansible playbook for mock matching engine server setup (a59a54c)
- chore(deps): bump tj-actions/changed-files in /.github/workflows (f610278)
- chore(deps): bump actions/setup-go from 4 to 5 (10a1aea)
- chore(deps): bump actions/setup-python from 4 to 5 (d83ee81)
- chore(deps): bump actions/setup-dotnet from 3 to 4 (57440e5)
- chore(deps): bump actions/setup-java from 3 to 4 (32297d9)
- Update README.md (c7ada93)
- chore(deps): bump tj-actions/changed-files from 39 to 40 (6c7ad84)
- Update feature-request.yml (1a08f79)
- Update snippet-extensions.yml (4be6caa)
- Update PULL_REQUEST_TEMPLATE.md (1adb527)
- fix: supress websocket close log to debug (98e9d13)
- doc: README (7b0c162)
- feat: split the websocket message definition to another file (147e379)
- chore: cargo fmt and cargo clippy (42751b4)
- feat: added env logger (ba9fdce)
- feat: bind 0.0.0.0 (bacc530)
- feat: dynamic create order response (30dbe8f)
- feat: dynamic subscriptions (83f70ff)
- feat: save the user ID (4a82481)
- feat: static websocket endpoints (4acb076)
- feat: mock-trading server POST endpoint (fa04989)
- Bump actions/setup-node from 3 to 4 (e569328)
- Update README.md (252c560)
- initial commit (835b2e1)
- Initial commit (fc59e3a)
π¦ Components
- Java Trading Client - β Cross-platform (all architectures)
- Rust Mock Server - β Linux (x86_64 & ARM64/Graviton), macOS (Intel & Apple Silicon), Windows
- C++ Client - β Multi-platform: Linux (x86_64 & ARM64/Graviton), macOS (Intel & Apple Silicon), Windows
- Configuration Samples - π All config files with documentation
π Quick Start
- Download
config-samples-v1.0.0.zip - Extract and rename config files as needed
- Download binaries for your platform
- Run!
Java Client:
java -jar ExchangeFlow-v1.0.0.jarC++ Client (choose your platform):
- Linux x86_64:
tar -xzf cpp-client-v1.0.0-linux-x86_64.tar.gz ./hft_client
- Linux ARM64 (Graviton2/3/4):
tar -xzf cpp-client-v1.0.0-linux-aarch64.tar.gz ./hft_client
- macOS Intel:
tar -xzf cpp-client-v1.0.0-macos-x86_64.tar.gz ./hft_client
- macOS Apple Silicon:
tar -xzf cpp-client-v1.0.0-macos-arm64.tar.gz ./hft_client
- Windows:
Expand-Archive cpp-client-v1.0.0-windows-x86_64.zip .\hft_client.exe
Rust Server (choose your platform):
- Linux x86_64:
./mock-trading-server-v1.0.0-linux-x86_64 - Linux ARM64 (Graviton):
./mock-trading-server-v1.0.0-linux-aarch64 - macOS Intel:
./mock-trading-server-v1.0.0-macos-x86_64 - macOS Apple Silicon:
./mock-trading-server-v1.0.0-macos-arm64 - Windows:
mock-trading-server-v1.0.0-windows-x86_64.exe
π Requirements
- Java 11+ (for client)
- Configuration files (included in config-samples.zip)
- See README in config bundle for details