Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
6ba0732
feat(types): add Timestamp::now() for wall-clock access
Milerius Apr 11, 2026
51b22b0
refactor(transport): make interruptible_sleep pub(crate)
Milerius Apr 11, 2026
c999414
feat(binance): implement spawn_binance_feed with backpressure
Milerius Apr 11, 2026
192bfda
fix(polymarket): add truncation warning for book snapshots >64 levels
Milerius Apr 11, 2026
8da23d6
feat(polymarket): implement spawn_polymarket_market_feed with backpre…
Milerius Apr 11, 2026
16bd7a7
feat(transport): add FeedMonitor for stale feed detection
Milerius Apr 11, 2026
d3d62e4
test(verify): add bolero property tests for venue decoders
Milerius Apr 11, 2026
3a547b0
perf(decoder): add sonic-rs, eliminate peek_stream overhead, remove u…
Milerius Apr 11, 2026
741595e
feat: session 2 — spawn convenience, timer, monitor, perf optimizations
Milerius Apr 11, 2026
4e628ac
fix: resolve clippy warnings in e2e test files
Milerius Apr 11, 2026
b0ae8fa
fix: resolve clippy warnings for CI
Milerius Apr 11, 2026
03e5175
fix: address CodeRabbit review feedback
Milerius Apr 11, 2026
8c8c67f
fix: address codex review — stale detection, stream mode sync, leadin…
Milerius Apr 11, 2026
1366fe3
fix: address new CodeRabbit comments
Milerius Apr 11, 2026
2475ed3
fix: remove doc link to private MAX_SYMBOL_LEN constant
Milerius Apr 11, 2026
579c3ba
fix: make timer heartbeat test more lenient for slow CI
Milerius Apr 11, 2026
c057d87
fix: make all timer tests CI-robust with larger intervals
Milerius Apr 11, 2026
623cf93
fix: address CodeRabbit round 3 — frac_digits overflow, docs, README
Milerius Apr 11, 2026
60ac37f
test: increase coverage for timer, spawn, decoder truncation, monitor
Milerius Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 161 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ mantis-polymarket = { path = "crates/polymarket", version = "0.1.0" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
simd-json = "0.17"
sonic-rs = "0.5"
tracing = "0.1"
cfg-if = "1"
libm = "0.2"
Expand Down
1 change: 1 addition & 0 deletions crates/bench/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ mantis-registry = { workspace = true }
criterion = { workspace = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sonic-rs = { workspace = true, optional = true }
rust_decimal = { version = "1", optional = true }
fixed = { version = "1", optional = true }
seqlock = { version = "0.2", optional = true }
Expand Down
12 changes: 10 additions & 2 deletions crates/bench/benches/decode.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use std::fmt::Write as _;
use std::hint::black_box;

use criterion::{Criterion, criterion_group, criterion_main};
use mantis_binance::BinanceDecoder;
use mantis_binance::{BinanceDecoder, BinanceSymbolMapping};
use mantis_events::{EventFlags, HeartbeatPayload, HotEvent};
use mantis_fixed::FixedI64;
use mantis_registry::{
Expand Down Expand Up @@ -42,7 +42,15 @@ fn binance_decoder() -> BinanceDecoder<3> {
FixedI64::<3>::from_str_decimal("0.001").expect("valid lot_size"),
)
.expect("valid meta");
BinanceDecoder::new(SourceId::from_raw(2), InstrumentId::from_raw(1), meta)
BinanceDecoder::new(
SourceId::from_raw(2),
&[BinanceSymbolMapping {
symbol: "BTCUSDT",
instrument_id: InstrumentId::from_raw(1),
meta,
}],
)
.expect("valid decoder")
}

fn binance_json() -> Vec<u8> {
Expand Down
6 changes: 4 additions & 2 deletions crates/binance/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,20 @@ license.workspace = true
repository.workspace = true

[features]
default = ["simd-json"]
default = ["sonic-rs"]
sonic-rs = ["dep:sonic-rs"]
simd-json = ["dep:simd-json"]

[dependencies]
mantis-types = { workspace = true }
mantis-types = { workspace = true, features = ["std"] }
mantis-events = { workspace = true }
mantis-fixed = { workspace = true }
mantis-transport = { workspace = true }

serde = { workspace = true }
serde_json = { workspace = true }
simd-json = { workspace = true, optional = true }
sonic-rs = { workspace = true, optional = true }
tracing = { workspace = true }

[dev-dependencies]
Expand Down
Loading
Loading