37 lines
No EOL
947 B
Markdown
37 lines
No EOL
947 B
Markdown
# Commons
|
|
|
|
**Commons** is the shared type library for Shoal - common types used across all components.
|
|
|
|
## What it Does
|
|
|
|
Commons provides consistent, reusable types throughout the Shoal system:
|
|
|
|
- **Shared data structures** - Types used by Pod, Reef, Reservoir, Dock, Lookout
|
|
- **Optional TTP serialization** - Types can be serialized using TTP (Transport Type Protocol)
|
|
- **Cross-crate consistency** - Ensures all components use the same type definitions
|
|
|
|
## How to Use
|
|
|
|
### Dependencies
|
|
|
|
Add to your `Cargo.toml`:
|
|
```toml
|
|
common = { git = "https://git.methanium.net/shoal/commons.git" }
|
|
```
|
|
|
|
### Usage
|
|
|
|
Import common types:
|
|
```rust
|
|
use common::{Task, KrillConfig, ProjectMetadata, ...};
|
|
```
|
|
|
|
## Purpose
|
|
|
|
Instead of each component defining its own types, Commons centralizes:
|
|
- Communication message types
|
|
- Task definitions
|
|
- Configuration structures
|
|
- Storage schemas
|
|
|
|
This ensures type safety and consistency across the entire Shoal ecosystem. |