← NowQuant Book (NQBook)
[Release v0.5.0] Unify the data input interface
nqbook v0.5.0
Released 2026-09-09.
Cancels become their own wire record, L2 mode moves into the config file, a
book snapshot narrows to the best level, and the service logs through spdlog
instead of raw printf.
OnCancel()takes anlib::cancelrecord, not an order'scancel_qty.nlib::orderdrops back to 80 bytes without the field, and the new record frames at 48 bytes behindcancel_tag(3). The orders Parquet file loses itscancel_qtycolumn; a newcancels-*.parquetfile gets one row per cancel, alongside the trades, levels, and books files.nlib::order_actiondropscancelandclear.OnOrder()switches onaddandmodifyonly now; a cancel always arrives as its own record, and there is no longer aclearrecord to replay a snapshot from.nlib::snapshot_depthis 1, not 10.OnSnapshot()aggregates only the best bid and ask per instrument, sonlib::bookshrinks with it: the books Parquet file's four price and quantity columns each hold one value per row instead of ten.feed.l2is aconfig.yamltunable, not a command-line flag.nqbooktakes no arguments at all now —mainreads onlyconfig/config.yaml, and neitherNQBOOK_FEED_ENDPOINTnorNQBOOK_METRICS_ENDPOINToverrides it.Makefileand.vscode/add a second way to reach the dev container.make upstarts a long-livedbook-devcontainer over the working tree,make shellopens a shell in it, andmake buildconfigures and builds inside it;.vscode/clangd-dockerpoints clangd atdocker exec -i book-dev clangd, so the editor resolves symbols against the container's toolchain.- Logging moves to spdlog, vendored
under
third_party/. Startup logs the version and every config value atinfo, a missing config file or a full queue logs awarninstead of going unnoticed, and a config or Arrow/Parquet error logscriticalbeforeabort()— replacing the single line used to print on startup and the calls scattered through and .
Comments
Sign in to join the discussion.
No comments yet. Be the first.