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;