34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
# GravityWeave
|
|
|
|
GravityWeave is a small Python package for federated orbital mission planning.
|
|
It focuses on deterministic coordination across delayed links, with compact
|
|
synopses, tamper-evident logging, and replay-friendly plan deltas.
|
|
|
|
## What Is Included
|
|
|
|
- `gravityweave.registry`: Graph-of-Contracts registry for adapters and schemas
|
|
- `gravityweave.plan_delta`: CRDT-style `ORSet`, `LWWRegister`, and `PlanDelta`
|
|
- `gravityweave.delta_synopsis`: compact synopses, priority keys, and signature checks
|
|
- `gravityweave.dtn`: custody headers and a DTN acceptance heuristic
|
|
- `gravityweave.ledger`: append-only governance ledger with chained HMACs
|
|
- `gravityweave.adapters`: starter `sat_planner` and `relay_module` adapters
|
|
- `gravityweave.solver`: an ADMM-lite local update stub
|
|
- `gravityweave.mission`: deterministic mission simulator that ties everything together
|
|
|
|
## Example
|
|
|
|
```python
|
|
from gravityweave import ContactWindow, MissionNode, MissionSimulator, MissionTask
|
|
|
|
nodes = [MissionNode("sat1", "satellite"), MissionNode("relay1", "relay")]
|
|
tasks = [MissionTask("task-a", "sat1", "downlink", utility=9.0, deadline_step=0, safety_critical=True)]
|
|
windows = [ContactWindow("sat1", "relay1", step=0, bandwidth_bytes=1024)]
|
|
|
|
sim = MissionSimulator(nodes, tasks, windows, ledger_key=b"ledger", synopsis_key=b"syn")
|
|
metrics = sim.run()
|
|
```
|
|
|
|
## Test And Build
|
|
|
|
Run `bash test.sh` to build the package and execute the test suite.
|