commons/README.md
2026-04-30 17:10:40 +02:00

947 B

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:

common = { git = "https://git.methanium.net/shoal/commons.git" }

Usage

Import common types:

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.