edgecrab-types
Why this crate? Every other crate in EdgeCrab needs to speak the same language.
edgecrab-typesis that language — the single, zero-dependency home for every shared type:
messages, tool schemas, roles, errors, and config shapes. By living here, these types are
imported by all other crates without creating circular dependencies.
Part of EdgeCrab — the Rust SuperAgent.
What's inside
| Module | Key types |
|---|---|
message |
Message, Role (system / user / assistant / tool) |
tool |
ToolSchema, ToolCall, ToolResult, ToolError |
config |
ModelConfig, AppConfig, Platform |
error |
EdgeCrabError (top-level anyhow-compatible error enum) |
Add to your crate
# Cargo.toml
[]
= { = "../edgecrab-types" }
Usage
use ;
// Build a conversation message
let msg = Message ;
// Represent a tool result
let result: = Ok;
Design rules
- Zero runtime dependencies — only
serde,serde_json,chrono,uuid,thiserror,regex, andedgequake-llm. - All types derive
Serialize/Deserializeso they round-trip cleanly over JSON. - No business logic here — types only; behaviour lives in
edgecrab-coreoredgecrab-tools.
Full docs, guides, and release notes → edgecrab.com