You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+6-7Lines changed: 6 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,21 +10,20 @@ Meridian is the venue half of a two-project quant systems narrative on the resum
10
10
11
11
The engine implements strict price-time priority (FIFO within each price level) and supports five order types: limit, market, immediate or cancel (IOC), post-only, and fill or kill (FOK), plus cancel by id. It is multi-instrument: one matching thread handles many symbols via a symbol-keyed dispatch. Top of book is published to readers (the sampler thread, the WebSocket server) through a seqlock-protected snapshot, so the matching loop never blocks on I/O. The single-threaded matching loop is the headline performance number.
12
12
13
-
## v1 numbers (measured)
13
+
## Measured numbers (v1.1.1)
14
14
15
15
Captured from `meridian-bench --events 1000000 --seed 42 --warmup 100000` running the release binary single-threaded against a synthetic limit / market / cancel mix. The same harness runs in CI on every PR; the CI baseline is the regression floor.
CI fails the build if throughput drops more than 5 percent or any of the p50, p99, p99.9 latency percentiles rise more than 10 percent versus `bench/baseline.json`. The library and the bench binary contain zero networking code, so these numbers are defensible in isolation.
26
25
27
-
**Correctness**. All ten matching invariants are verified by hand rolled property-based tests in [`tests/property/`](tests/property/), each running 1000 generated cases per CI run. The C++ engine's audit log is diffed byte-for-byte against a Python reference implementation under [`tests/reference/`](tests/reference/) on every test run, covering 100 random sequences in the property suite plus 26 worked-example scenarios across Limit, Market, IOC, Post-only, FOK, and Cancel. Total test count: 182 C++ tests plus 18 frontend Vitest cases, all green at every commit on `main`.
26
+
**Correctness**. All eleven matching invariants are verified by hand rolled property-based tests in [`tests/property/`](tests/property/), each running 1000 generated cases per CI run. The C++ engine's audit log is diffed byte-for-byte against a Python reference implementation under [`tests/reference/`](tests/reference/) on every test run, covering 100 random sequences in the property suite plus 71 named scenarios across Limit, Market, IOC, Post-only, FOK, and Cancel. Total test count: 221 C++ tests plus 21 frontend Vitest cases, all green at every commit on `main`.
28
27
29
28
**Replay**. NASDAQ ITCH 5.0 binary tapes (Add Order and Order Delete messages today; the remaining message types are deferred) are parsed and replayed against the engine via [`apps/replay/`](apps/replay/), with a byte-for-byte differential test against the Python reference in [`tests/integration/test_itch_replay.cpp`](tests/integration/test_itch_replay.cpp).
0 commit comments