A Cargo workspace and crate registry for all ResQ Rust packages published to crates.io. Contains production-grade libraries and a suite of CLI/TUI developer tools for the ResQ autonomous drone platform.
| Crate | Description | crates.io |
|---|---|---|
resq-dsa |
Data structures and algorithms -- zero dependencies | |
resq-cli |
Unified CLI entry point (resq binary) |
|
resq-tui |
Shared Ratatui component library for all TUI tools | |
resq-health |
Service health monitoring dashboard | |
resq-deploy |
Kubernetes and Docker Compose deployment TUI | |
resq-logs |
Log aggregator and stream viewer | |
resq-perf |
Performance monitoring dashboard | |
resq-flame |
CPU profiler and flame graph generator | |
bin-explorer |
Machine code and binary analyzer | |
resq-clean |
Interactive workspace cleaner |
Production-grade data structures and algorithms with zero external dependencies. Supports no_std environments with the alloc crate.
cargo add resq-dsa| Feature | Default | Description |
|---|---|---|
std |
Yes | Enables standard library support |
For no_std environments, disable default features:
[dependencies]
resq-dsa = { version = "0.1", default-features = false }The crate uses alloc internally, so a global allocator is required even in no_std mode.
Space-efficient probabilistic set membership. False positives are possible; false negatives are not.
use resq_dsa::bloom::BloomFilter;
// Create a filter for ~1000 items with 1% false positive rate
let mut bf = BloomFilter::new(1000, 0.01);
// Add items
bf.add("drone-001");
bf.add("drone-002");
// Check membership
assert!(bf.has("drone-001")); // definitely added
assert!(!bf.has("drone-999")); // definitely NOT addedSpace-efficient probabilistic frequency estimation. May overcount but never undercounts.
use resq_dsa::count_min::CountMinSketch;
// Create a sketch with epsilon=0.01, delta=0.01 error bounds
let mut cms = CountMinSketch::new(0.01, 0.01);
// Increment frequency counts
cms.increment("sensor-a", 5);
cms.increment("sensor-b", 1);
cms.increment("sensor-a", 3);
// Estimate frequency
assert!(cms.estimate("sensor-a") >= 8);Weighted directed graph with BFS traversal, Dijkstra's shortest path, and A* pathfinding.
use resq_dsa::graph::Graph;
let mut g = Graph::<&str>::new();
g.add_edge("base", "waypoint-1", 100);
g.add_edge("waypoint-1", "target", 50);
g.add_edge("base", "target", 200);
// BFS traversal (unweighted)
let visited = g.bfs(&"base");
assert!(visited.contains(&"target"));
// Dijkstra's shortest path
let (path, cost) = g.dijkstra(&"base", &"target").unwrap();
assert_eq!(path, vec!["base", "waypoint-1", "target"]);
assert_eq!(cost, 150);
// A* with heuristic
let (path, cost) = g.astar(&"base", &"target", |_, _| 0).unwrap();
assert_eq!(cost, 150);A bounded max-heap for tracking the K smallest entries (K-nearest neighbors).
use resq_dsa::heap::BoundedHeap;
// Keep the 3 nearest neighbors, using distance function
let mut heap = BoundedHeap::new(3, |item: &(i32, i32)| {
((item.0 * item.0 + item.1 * item.1) as u64)
});
heap.insert((1, 2));
heap.insert((10, 10));
heap.insert((0, 1));
heap.insert((3, 3)); // evicts (10, 10) since heap is full
let sorted = heap.to_sorted();
assert_eq!(sorted.len(), 3);Prefix tree for efficient string storage, exact search, and autocomplete.
use resq_dsa::trie::Trie;
let mut t = Trie::new();
t.insert("drone");
t.insert("drone-001");
t.insert("drone-002");
t.insert("deploy");
// Exact search
assert!(t.search("drone"));
assert!(!t.search("dro"));
// Prefix-based autocomplete
let results = t.starts_with("drone-");
assert_eq!(results, vec!["drone-001", "drone-002"]);Rolling-hash string pattern matching. Returns all starting indices of pattern occurrences.
use resq_dsa::trie::rabin_karp;
let indices = rabin_karp("the drone flew over the base", "the");
assert_eq!(indices, vec![0, 23]);The workspace includes a suite of developer tools for the ResQ platform, all sharing a common TUI foundation via resq-tui.
| Command | Tool | Description |
|---|---|---|
resq audit |
resq-cli | Security audit (OSV/dependency scanning) |
resq health |
resq-health | Service health monitoring dashboard |
resq deploy |
resq-deploy | Kubernetes/Docker Compose deployment TUI |
resq logs |
resq-logs | Aggregate and stream service logs |
resq perf |
resq-perf | Real-time performance metrics |
resq flame |
resq-flame | CPU profiling and flame graph generation |
resq asm |
bin-explorer | Binary/machine code analysis |
resq clean |
resq-clean | Interactive workspace cleaner |
resq copyright |
resq-cli | Apache-2.0 license header enforcement |
cargo install resq-cli
resq help- Rust: Stable toolchain via
rustup(pinned inrust-toolchain.toml). - Nix (optional): For reproducible development environments, use
nix develop.
git clone https://github.com/resq-software/crates.git
cd crates
cargo build --release --workspace# Run all tests
cargo test --workspace
# Run only resq-dsa tests (including ignored complexity tests)
cargo test -p resq-dsa -- --include-ignoredcargo clippy --workspace -- -D warnings
cargo fmt --all --check| Alias | Description |
|---|---|
cargo resq |
Run the ResQ CLI |
cargo health |
Launch health monitor |
cargo logs |
Launch log viewer |
cargo perf |
Launch performance dashboard |
cargo deploy |
Launch deployment TUI |
cargo flame |
Launch flame graph profiler |
cargo bin |
Launch binary explorer |
cargo cleanup |
Launch workspace cleaner |
cargo check-all |
Fastest correctness check |
We follow Conventional Commits.
- Branch: Use
feat/,fix/, orrefactor/prefixes. - Quality: Run
cargo clippy --workspace -- -D warningsbefore submitting. - Tests: All CI workflows must pass, including
osv-scan. - Headers: Run
resq copyrightto enforce Apache-2.0 license headers on new source files. - Agent Guides: Run
./agent-sync.shif you modifyAGENTS.mdorCLAUDE.md.
Copyright 2026 ResQ. Licensed under the Apache License, Version 2.0.