{"id":47688200,"url":"https://github.com/resq-software/crates","last_synced_at":"2026-04-14T13:02:18.384Z","repository":{"id":343857496,"uuid":"1178605514","full_name":"resq-software/crates","owner":"resq-software","description":"A comprehensive Rust-based CLI and TUI toolset for the ResQ autonomous drone platform. Provides unified developer and operations utilities including audit, secrets scanning, deployment orchestration, health diagnostics, log aggregation, and performance profiling.","archived":false,"fork":false,"pushed_at":"2026-04-02T16:06:18.000Z","size":387,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T02:26:43.593Z","etag":null,"topics":["automation","cli-tool","developer-tools","devops","monitoring","rust","tui","workspace"],"latest_commit_sha":null,"homepage":"https://crates.io/users/resq-sw","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/resq-software.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-11T07:23:22.000Z","updated_at":"2026-04-02T16:04:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"c3a6e3da-5739-4226-9c63-998dcbfcc5c4","html_url":"https://github.com/resq-software/crates","commit_stats":null,"previous_names":["resq-software/cli","resq-software/crates"],"tags_count":109,"template":false,"template_full_name":null,"purl":"pkg:github/resq-software/crates","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resq-software%2Fcrates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resq-software%2Fcrates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resq-software%2Fcrates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resq-software%2Fcrates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/resq-software","download_url":"https://codeload.github.com/resq-software/crates/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resq-software%2Fcrates/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31588039,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-09T05:33:47.836Z","status":"ssl_error","status_checked_at":"2026-04-09T05:32:26.579Z","response_time":112,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","cli-tool","developer-tools","devops","monitoring","rust","tui","workspace"],"created_at":"2026-04-02T15:04:19.561Z","updated_at":"2026-04-09T06:03:13.660Z","avatar_url":"https://github.com/resq-software.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ResQ Crates\n\n[![CI](https://img.shields.io/github/actions/workflow/status/resq-software/crates/ci.yml?branch=master\u0026label=ci\u0026style=flat-square)](https://github.com/resq-software/crates/actions)\n[![resq-dsa](https://img.shields.io/crates/v/resq-dsa?style=flat-square\u0026label=resq-dsa)](https://crates.io/crates/resq-dsa)\n[![resq-cli](https://img.shields.io/crates/v/resq-cli?style=flat-square\u0026label=resq-cli)](https://crates.io/crates/resq-cli)\n[![resq-tui](https://img.shields.io/crates/v/resq-tui?style=flat-square\u0026label=resq-tui)](https://crates.io/crates/resq-tui)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square)](LICENSE)\n\n\u003e A comprehensive Rust CLI/TUI toolset and DSA library for the ResQ autonomous drone platform.\n\n## Packages\n\n| Crate | Description | crates.io |\n| :--- | :--- | :--- |\n| [`resq-dsa`](crates/resq-dsa/) | Data structures and algorithms -- zero dependencies | [![crates.io](https://img.shields.io/crates/v/resq-dsa?style=flat-square)](https://crates.io/crates/resq-dsa) |\n| [`resq-cli`](crates/cli/) | Unified CLI entry point (`resq` binary) | [![crates.io](https://img.shields.io/crates/v/resq-cli?style=flat-square)](https://crates.io/crates/resq-cli) |\n| [`resq-tui`](crates/resq-tui/) | Shared Ratatui component library for all TUI tools | [![crates.io](https://img.shields.io/crates/v/resq-tui?style=flat-square)](https://crates.io/crates/resq-tui) |\n| [`resq-health`](crates/health-checker/) | Service health monitoring dashboard | [![crates.io](https://img.shields.io/crates/v/resq-health?style=flat-square)](https://crates.io/crates/resq-health) |\n| [`resq-deploy`](crates/deploy-cli/) | Kubernetes and Docker Compose deployment TUI | [![crates.io](https://img.shields.io/crates/v/resq-deploy?style=flat-square)](https://crates.io/crates/resq-deploy) |\n| [`resq-logs`](crates/log-viewer/) | Log aggregator and stream viewer | [![crates.io](https://img.shields.io/crates/v/resq-logs?style=flat-square)](https://crates.io/crates/resq-logs) |\n| [`resq-perf`](crates/perf-monitor/) | Performance monitoring dashboard | [![crates.io](https://img.shields.io/crates/v/resq-perf?style=flat-square)](https://crates.io/crates/resq-perf) |\n| [`resq-flame`](crates/flame-graph/) | CPU profiler and flame graph generator | [![crates.io](https://img.shields.io/crates/v/resq-flame?style=flat-square)](https://crates.io/crates/resq-flame) |\n| [`resq-bin`](crates/bin-explorer/) | Machine code and binary analyzer | [![crates.io](https://img.shields.io/crates/v/resq-bin?style=flat-square)](https://crates.io/crates/resq-bin) |\n| [`resq-clean`](crates/cleanup/) | Interactive workspace cleaner | [![crates.io](https://img.shields.io/crates/v/resq-clean?style=flat-square)](https://crates.io/crates/resq-clean) |\n\n---\n\n## resq-dsa\n\nProduction-grade data structures and algorithms with **zero external dependencies**. Supports `no_std` environments with the `alloc` crate.\n\n### Installation\n\n```sh\ncargo add resq-dsa\n```\n\n### Features\n\n| Feature | Default | Description |\n| :--- | :--- | :--- |\n| `std` | Yes | Enables standard library support |\n\nFor `no_std` environments, disable default features:\n\n```toml\n[dependencies]\nresq-dsa = { version = \"0.1\", default-features = false }\n```\n\nThe crate uses `alloc` internally, so a global allocator is required even in `no_std` mode.\n\n### Bloom Filter\n\nSpace-efficient probabilistic set membership. False positives are possible; false negatives are not.\n\n```rust\nuse resq_dsa::bloom::BloomFilter;\n\n// Create a filter for ~1000 items with 1% false positive rate\nlet mut bf = BloomFilter::new(1000, 0.01);\n\n// Add items\nbf.add(\"drone-001\");\nbf.add(\"drone-002\");\n\n// Check membership\nassert!(bf.has(\"drone-001\"));   // definitely added\nassert!(!bf.has(\"drone-999\"));  // definitely NOT added\n```\n\n### Count-Min Sketch\n\nSpace-efficient probabilistic frequency estimation. May overcount but never undercounts.\n\n```rust\nuse resq_dsa::count_min::CountMinSketch;\n\n// Create a sketch with epsilon=0.01, delta=0.01 error bounds\nlet mut cms = CountMinSketch::new(0.01, 0.01);\n\n// Increment frequency counts\ncms.increment(\"sensor-a\", 5);\ncms.increment(\"sensor-b\", 1);\ncms.increment(\"sensor-a\", 3);\n\n// Estimate frequency\nassert!(cms.estimate(\"sensor-a\") \u003e= 8);\n```\n\n### Graph\n\nWeighted directed graph with BFS traversal, Dijkstra's shortest path, and A* pathfinding.\n\n```rust\nuse resq_dsa::graph::Graph;\n\nlet mut g = Graph::\u003c\u0026str\u003e::new();\ng.add_edge(\"base\", \"waypoint-1\", 100);\ng.add_edge(\"waypoint-1\", \"target\", 50);\ng.add_edge(\"base\", \"target\", 200);\n\n// BFS traversal (unweighted)\nlet visited = g.bfs(\u0026\"base\");\nassert!(visited.contains(\u0026\"target\"));\n\n// Dijkstra's shortest path\nlet (path, cost) = g.dijkstra(\u0026\"base\", \u0026\"target\").unwrap();\nassert_eq!(path, vec![\"base\", \"waypoint-1\", \"target\"]);\nassert_eq!(cost, 150);\n\n// A* with heuristic\nlet (path, cost) = g.astar(\u0026\"base\", \u0026\"target\", |_, _| 0).unwrap();\nassert_eq!(cost, 150);\n```\n\n### Bounded Heap\n\nA bounded max-heap for tracking the K smallest entries (K-nearest neighbors).\n\n```rust\nuse resq_dsa::heap::BoundedHeap;\n\n// Keep the 3 nearest neighbors, using distance function\nlet mut heap = BoundedHeap::new(3, |item: \u0026(i32, i32)| {\n    ((item.0 * item.0 + item.1 * item.1) as u64)\n});\n\nheap.insert((1, 2));\nheap.insert((10, 10));\nheap.insert((0, 1));\nheap.insert((3, 3));  // evicts (10, 10) since heap is full\n\nlet sorted = heap.to_sorted();\nassert_eq!(sorted.len(), 3);\n```\n\n### Trie\n\nPrefix tree for efficient string storage, exact search, and autocomplete.\n\n```rust\nuse resq_dsa::trie::Trie;\n\nlet mut t = Trie::new();\nt.insert(\"drone\");\nt.insert(\"drone-001\");\nt.insert(\"drone-002\");\nt.insert(\"deploy\");\n\n// Exact search\nassert!(t.search(\"drone\"));\nassert!(!t.search(\"dro\"));\n\n// Prefix-based autocomplete\nlet results = t.starts_with(\"drone-\");\nassert_eq!(results, vec![\"drone-001\", \"drone-002\"]);\n```\n\n### Rabin-Karp\n\nRolling-hash string pattern matching. Returns all starting indices of pattern occurrences.\n\n```rust\nuse resq_dsa::trie::rabin_karp;\n\nlet indices = rabin_karp(\"the drone flew over the base\", \"the\");\nassert_eq!(indices, vec![0, 23]);\n```\n\n---\n\n## CLI Tools\n\nThe workspace includes a suite of developer tools for the ResQ platform, all sharing a common TUI foundation via `resq-tui`.\n\n| Command | Tool | Description |\n| :--- | :--- | :--- |\n| `resq audit` | resq-cli | Security audit (OSV/dependency scanning) |\n| `resq health` | resq-health | Service health monitoring dashboard |\n| `resq deploy` | resq-deploy | Kubernetes/Docker Compose deployment TUI |\n| `resq logs` | resq-logs | Aggregate and stream service logs |\n| `resq perf` | resq-perf | Real-time performance metrics |\n| `resq flame` | resq-flame | CPU profiling and flame graph generation |\n| `resq asm` | bin-explorer | Binary/machine code analysis |\n| `resq clean` | resq-clean | Interactive workspace cleaner |\n| `resq copyright` | resq-cli | Apache-2.0 license header enforcement |\n\n### Quick Start\n\n```sh\ncargo install resq-cli\nresq help\n```\n\n---\n\n## Development\n\n### Prerequisites\n\n- **Rust:** Stable toolchain via `rustup` (pinned in `rust-toolchain.toml`).\n- **Nix (optional):** For reproducible development environments, use `nix develop`.\n\n### Build\n\n```sh\ngit clone https://github.com/resq-software/crates.git\ncd crates\ncargo build --release --workspace\n```\n\n### Test\n\n```sh\n# Run all tests\ncargo test --workspace\n\n# Run only resq-dsa tests (including ignored complexity tests)\ncargo test -p resq-dsa -- --include-ignored\n```\n\n### Lint\n\n```sh\ncargo clippy --workspace -- -D warnings\ncargo fmt --all --check\n```\n\n### Cargo Aliases\n\n| Alias | Description |\n| :--- | :--- |\n| `cargo resq` | Run the ResQ CLI |\n| `cargo health` | Launch health monitor |\n| `cargo logs` | Launch log viewer |\n| `cargo perf` | Launch performance dashboard |\n| `cargo deploy` | Launch deployment TUI |\n| `cargo flame` | Launch flame graph profiler |\n| `cargo bin` | Launch binary explorer |\n| `cargo cleanup` | Launch workspace cleaner |\n| `cargo check-all` | Fastest correctness check |\n\n---\n\n## Contributing\n\nWe follow [Conventional Commits](https://www.conventionalcommits.org/).\n\n1. **Branch:** Use `feat/`, `fix/`, or `refactor/` prefixes.\n2. **Quality:** Run `cargo clippy --workspace -- -D warnings` before submitting.\n3. **Tests:** All CI workflows must pass, including `osv-scan`.\n4. **Headers:** Run `resq copyright` to enforce Apache-2.0 license headers on new source files.\n5. **Agent Guides:** Run `./agent-sync.sh` if you modify `AGENTS.md` or `CLAUDE.md`.\n\n---\n\n## License\n\nCopyright 2026 ResQ. Licensed under the [Apache License, Version 2.0](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresq-software%2Fcrates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresq-software%2Fcrates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresq-software%2Fcrates/lists"}