A better Rust ATProto crate
at main 1.3 kB view raw
1//! # Lexicon schema parsing and Rust code generation for the Jacquard atproto ecosystem 2//! 3//! This crate also provides lexicon fetching capabilitiees ofr 4//! 5//! ## Usage 6//! 7//! ### Fetch lexicons 8//! 9//! The `lex-fetch` binary downloads lexicons from configured sources and 10//! runs the code generation pipeline on them: 11//! 12//! ```bash 13//! cargo run -p jacquard-lexicon --bin lex-fetch 14//! ``` 15//! 16//! Configuration lives in `lexicons.kdl` at the workspace root. 17//! 18//! ### Generate Rust code 19//! 20//! The `jacquard-codegen` binary can be pointed at a local directory to 21//! runs the code generation pipeline: 22//! 23//! ```bash 24//! cargo run -p jacquard-lexicon --bin jacquard-codegen -- \ 25//! -i ./lexicons \ 26//! -o ./crates/jacquard-api/src 27//! ``` 28//! 29//! 30//! ## Modules 31//! 32//! - [`codegen`] - Rust code generation from parsed schemas 33//! - [`corpus`] - Lexicon corpus management and namespace organization 34//! - [`lexicon`] - Schema parsing and validation 35//! - [`union_registry`] - Tracks union types for collision detection 36//! - [`fetch`] - Ingests lexicons from git, atproto, http fetch, and other sources 37//! - [`fs`] - Filesystem utilities for lexicon storage 38 39pub mod codegen; 40pub mod corpus; 41pub mod error; 42pub mod fetch; 43pub mod fs; 44pub mod lexicon; 45pub mod union_registry;