Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
ac4ed3b
feat(msg-sim): linux stub
thedevbirb Nov 24, 2025
35d082b
chore(msg-sim): remove macos target; support only linux
thedevbirb Nov 28, 2025
89c52ec
feat(msg-sim): simulation network stub
thedevbirb Dec 1, 2025
f197870
chore(msg-sim): refactor network stub
thedevbirb Dec 1, 2025
69093db
feat(msg-sim): command utilities
thedevbirb Dec 3, 2025
863c6fe
fix(msg-sim): types, subnet
thedevbirb Dec 5, 2025
86e6a52
fix(msg-sim): avoid mask config
thedevbirb Dec 5, 2025
ee1d393
check
thedevbirb Dec 7, 2025
02b7f91
chore(msg-sim): refactor
thedevbirb Dec 7, 2025
e159181
chore(msg-sim): refactor
thedevbirb Dec 7, 2025
35579a7
feat(msg-sim): refactor with rtnetlink and new architecture
thedevbirb Dec 9, 2025
b05e0e6
feat(msg-sim): dyn task
thedevbirb Dec 10, 2025
3c1a71e
feat(msg-sim): running code in namespace works
thedevbirb Dec 15, 2025
7771d65
chore(msg-sim): add test using req/rep
thedevbirb Dec 15, 2025
7a7b9d6
feat(msg-sim): bring lo up; tc stub
thedevbirb Dec 16, 2025
75f9d00
refactor
thedevbirb Dec 17, 2025
5be66ed
stub tc
thedevbirb Dec 27, 2025
62e0141
ugly but works
thedevbirb Dec 28, 2025
c5f8213
fix(msg-sim): latency and jitter computation
thedevbirb Dec 30, 2025
e26834a
chore(msg-sim): refactor
thedevbirb Dec 30, 2025
52fe245
feat(msg-sim): generic context attempt
thedevbirb Jan 1, 2026
acb2d38
chore(msg-sim): refactor, comments
thedevbirb Jan 4, 2026
5c2c9b9
fix(msg-sim): don't build the crate on macos
thedevbirb Jan 5, 2026
3d4a4f8
fix(msg-sim): tokio fs feature, bump rtnetlink
thedevbirb Jan 5, 2026
9f73a0a
fix(msg-sim): ci, remove simulation from pubsub it
thedevbirb Jan 6, 2026
8bec9ca
stub
thedevbirb Jan 8, 2026
8aa8742
feat(msg-sim): use drr for adding classes dynamically; refactor
thedevbirb Jan 9, 2026
ab4a6ff
chore(msg-sim): document notable paths
thedevbirb Jan 9, 2026
e769af1
chore: shear deps
thedevbirb Jan 9, 2026
f8b6335
chore: bump MSRV to 1.86.0
thedevbirb Jan 9, 2026
593f2c6
chore: update ci with privileges for running msg-sim tests
thedevbirb Jan 9, 2026
7f2d13d
Merge branch 'main' of https://github.com/chainbound/msg-rs into lore…
thedevbirb Jan 9, 2026
591f8e9
chore(msg-sim): update readme
thedevbirb Jan 9, 2026
2442bf3
feat(msg-sim): Cast trait
thedevbirb Jan 9, 2026
d429e4e
fix(msg-sim): doc comments
thedevbirb Jan 9, 2026
ab0f6b4
chore(msg-sim): move scripts to separate folder; highlight limitation…
thedevbirb Jan 13, 2026
7442cf7
chore(msg-sim): example sim_multi_region
thedevbirb Jan 13, 2026
0d3a3de
chore(msg-sim): builder pattern for impairments
thedevbirb Jan 13, 2026
f6babf0
chore(msg-sim): address review
thedevbirb Jan 14, 2026
0c40910
chore: update CLAUDE.md
thedevbirb Jan 14, 2026
b9e172d
Merge branch 'main' of https://github.com/chainbound/msg-rs into lore…
thedevbirb Jan 14, 2026
fee3b9a
fix(msg-sim): ci
thedevbirb Jan 14, 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
20 changes: 20 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"permissions": {
"allow": [
"Bash(cargo check:*)",
"Bash(sudo ip netns exec msg-sim-1 tc qdisc show:*)",
"Bash(grep:*)",
"Bash(find:*)",
"Bash(just check:*)",
"Bash(just clippy:*)",
"Bash(just fmt:*)",
"Bash(ls:*)",
"Bash(RUSTDOCFLAGS=\"-D warnings\" cargo +nightly doc:*)",
"WebSearch",
"Bash(cat:*)",
"WebFetch(domain:github.com)",
"Bash(cargo test:*)",
"Bash(git show:*)"
]
}
}
28 changes: 25 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,34 @@ jobs:
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest

- name: Run tests (all features)
run: cargo nextest run --all --all-features --no-fail-fast
- name: Run tests (all features, excluding msg-sim)
run: cargo nextest run --all --all-features --no-fail-fast --exclude msg-sim

- name: Run doc tests
- name: Run doc tests (excluding msg-sim)
run: cargo test --doc --all --all-features

# msg-sim tests require root privileges to create network namespaces
cargo-tests-msg-sim:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout sources
uses: actions/checkout@v6

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true

# Install nextest
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest

- name: Run msg-sim tests (requires root for network namespaces)
run: sudo env "PATH=$PATH" "HOME=$HOME" cargo nextest run -p msg-sim --all-features --no-fail-fast --test-threads=1

cargo-lint:
runs-on: ubuntu-latest
timeout-minutes: 20
Expand Down
9 changes: 4 additions & 5 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ cargo flamegraph --bin example_name
- **`msg-transport/`** - Transport layer (TCP, QUIC, IPC with pluggable trait design)
- **`msg-wire/`** - Wire protocol (authentication, compression: gzip/lz4/snappy/zstd)
- **`msg-common/`** - Shared utilities (channels, task management, time utils)
- **`msg-sim/`** - Network simulation (macOS: pfctl/dnctl, Linux: tc/netem)
- **`msg-sim/`** - Network simulation on Linux, powered by rtnetlink.

### Key Design Patterns
- **Trait-based extensibility** - Transport, Authenticator traits for pluggability
Expand All @@ -69,9 +69,8 @@ cargo flamegraph --bin example_name
- **debug-maxperf** - Performance with debug symbols

### Platform-Specific Features
- **Linux**: JeMalloc integration for memory performance
- **macOS**: Network simulation via pfctl/dnctl
- **MSRV**: Rust 1.75
- **Linux**: JeMalloc integration for memory performance and `msg-sim` support
- **MSRV**: Rust 1.86

## Testing Architecture

Expand Down Expand Up @@ -109,4 +108,4 @@ cargo flamegraph --bin example_name
### Current Development Status
- **Alpha stage** - API may change, not production-ready
- **Active development** - Regular feature additions
- **Chainbound/Fiber integration** - Primary use case driving development
- **Chainbound/Fiber integration** - Primary use case driving development
Loading
Loading