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
feat(websocket): add user-thread dispatch and shared-memory examples
- Upgrade slick-net integration to 3.0.0 dynamic-buffer backend
- Add caller-thread WebSocket dispatch APIs and external mux support
- Add market data examples for user-thread dispatch and shared-memory reading
- Add offline tests for dispatch routing and shared-memory attachment
- Update README and changelog for the new APIs, examples, and logging hooks
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,13 +12,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
12
12
### Added
13
13
- Add a `market_data_websocket` example that subscribes to public testnet `allMids` and per-coin `l2Book` WebSocket updates for one or more coins.
14
14
- Add a `market_data_websocket_per_coin` example that subscribes to ETH and BTC market data using one WebSocket connection per coin.
15
+
- Add user-thread WebSocket dispatch support through `Info::dispatch()`, `WebsocketManager::dispatch()`, and `user_thread_dispatch` constructor options.
16
+
- Add `Info` and `WebsocketManager` constructors that accept an external `slick::stream_buffer_multiplexer` for shared dispatch queues.
17
+
- Add `market_data_websocket_user_thread_dispatch`, `market_data_websocket_per_coin_user_thread_dispatch`, and `market_data_websocket_shm_reader` examples.
18
+
- Add shared-memory WebSocket buffer configuration options so external readers can attach to the market-data stream.
15
19
16
20
### Changed
17
21
- Normalize line ending to LF
22
+
- Update the WebSocket transport integration for `slick-net` 3.0.0 and the slick dynamic-buffer stream-buffer-multiplexer backend.
23
+
- Move example target registration into `examples/CMakeLists.txt`.
24
+
- Publish `market_data_websocket` records to named shared-memory segments that `market_data_websocket_shm_reader` can open.
18
25
- Move test CMake setup into `tests/CMakeLists.txt`, register GoogleTest cases with `gtest_discover_tests()`, and keep CI integration tests running as a single executable to avoid repeated testnet setup per discovered test case.
19
26
- Defer GoogleTest discovery to CTest with a longer discovery timeout so test executables are not run during the build.
20
27
- Stabilize the WebSocket partial-unsubscribe integration test by waiting for the next `allMids` event instead of assuming one arrives within a fixed one-second sleep.
21
28
29
+
### Tests
30
+
- Add offline regression tests for user-thread WebSocket dispatch routing, foreign producer filtering, and shared-memory writer/reader attachment.
Setting `user_thread_dispatch = true` queues inbound WebSocket records in the slick stream-buffer multiplexer; call `dispatch()` to invoke matching callbacks on the caller thread.
247
+
The multiplexer parameters can name shared-memory segments, and the external `mux` overload lets multiple `Info` instances share one dispatch queue.
0 commit comments