ResQ PyPI Packages
Repository for all ResQ Python packages published to PyPI.
Packages
| Package | Description | Version |
|---|---|---|
resq-mcp | FastMCP server exposing ResQ platform capabilities to AI agents | |
resq-dsa | Zero-dependency data structures & algorithms |
resq-dsa
Production-grade data structures and algorithms. Python 3.11+, zero dependencies.
Installation
pip install resq-dsa
# or
uv add resq-dsa
Usage
BloomFilter
Probabilistic set membership with configurable false positive rate.
from resq_dsa import BloomFilter
bf = BloomFilter(capacity=10_000, error_rate=0.01)
bf.add("drone-001")
bf.add("drone-002")
bf.has("drone-001") # True
bf.has("drone-999") # False (probably)
CountMinSketch
Probabilistic frequency estimation.
from resq_dsa import CountMinSketch
cms = CountMinSketch(epsilon=0.01, delta=0.01)
cms.increment("sensor-reading", 5)
cms.increment("sensor-reading", 3)
cms.estimate("sensor-reading") # ~8
Graph
Directed weighted graph with BFS, Dijkstra, and A* pathfinding.
from resq_dsa import Graph
g = Graph()
g.add_edge("base", "wp-1", weight=100)
g.add_edge("wp-1", "wp-2", weight=50)
g.add_edge("base", "wp-2", weight=200)
# Breadth-first traversal
g.bfs("base") # ['base', 'wp-1', 'wp-2']
# Shortest path (Dijkstra)
result = g.dijkstra("base", "wp-2")
# {'path': ['base', 'wp-1', 'wp-2'], 'cost': 150}
# A* with heuristic
result = g.astar("base", "wp-2", heuristic=lambda n: 0)
BoundedHeap
Bounded min-heap for top-k tracking by distance function.
from resq_dsa import BoundedHeap
heap = BoundedHeap(limit=3, dist=lambda x: x["priority"])
heap.insert({"name": "alpha", "priority": 5.0})
heap.insert({"name": "bravo", "priority": 1.0})
heap.insert({"name": "charlie", "priority": 3.0})
heap.insert({"name": "delta", "priority": 0.5}) # evicts highest
heap.peek() # lowest priority item
heap.to_sorted() # sorted by distance
heap.size # 3
Trie
Prefix tree for string operations.
from resq_dsa import Trie
trie = Trie()
trie.insert("disaster")
trie.insert("dispatch")
trie.insert("distance")
trie.search("disaster") # True
trie.search("disast") # False
trie.starts_with("dis") # ['disaster', 'dispatch', 'distance']
Rabin-Karp
Rolling hash string pattern matching. Returns list of starting indices.
from resq_dsa import rabin_karp
rabin_karp("the quick brown fox", "quick") # [4]
rabin_karp("abcabcabc", "abc") # [0, 3, 6]
resq-mcp
FastMCP server connecting AI agents to ResQ's drone fleet, predictive intelligence, and digital twin systems. See the resq-mcp README for full documentation.
pip install resq-mcp
resq-mcp # Start in STDIO mode
Development
Each package is independent with its own pyproject.toml and virtual environment.
# resq-dsa
cd packages/resq-dsa
uv sync
uv run pytest # Run tests
uv run ruff check src/ tests/ # Lint
# resq-mcp
cd packages/resq-mcp
uv sync
uv run pytest # Run tests (unit + integration + property)
uv run ruff check src/ tests/ # Lint
uv run mypy src/ # Type check
Contributing
- Fork the repo and create a feature branch
- Make changes in the appropriate
packages/directory - Run tests and linting for the affected package
- Open a PR against
main
License
Apache-2.0. See LICENSE for details.