Crates
The workspace ships eleven crates. Each is independently versioned but bumped together at every release.
| Crate | Purpose |
|---|---|
| idiolect-records | Generated record types for the dev.idiolect.* lexicons; Record trait; family modules. |
| idiolect-codegen | Lexicon-driven Rust + TypeScript emitter; drift gate; breaking-change classifier. |
| idiolect-lens | Resolve PanprotoLens records; run apply_lens. |
| idiolect-identity | DID resolution (did:plc, did:web). |
| idiolect-indexer | Firehose consumer with pluggable stream / handler / cursor store. |
| idiolect-oauth | OAuthTokenStore trait and shipped impls. |
| idiolect-observer | Fold encounter-family records into observation records. |
| idiolect-orchestrator | Read-only HTTP query API over a record catalog. |
| idiolect-verify | Verification runners with declarative dispatch. |
| idiolect-migrate | Schema diff plus lens-based record migration. |
| idiolect-cli | Command-line tool wrapping the library crates. |
Cargo manifests live under crates/<name>/Cargo.toml. Every
shipped crate is published to crates.io under the same name and
to docs.rs at https://docs.rs/<name>/latest/<name_underscored>/.
Policy
The pages in this section are editorial overviews: an opinionated summary of what each crate is for, the public types you reach for first, and the feature flags. They are not the authoritative per-symbol reference. The authoritative reference is the rendered rustdoc on docs.rs, linked at the top of every crate page. When this book and docs.rs disagree, docs.rs is right.