Skip to main content

panproto_protocols/
lib.rs

1#![allow(
2    unknown_lints,
3    clippy::match_same_arms,
4    clippy::similar_names,
5    clippy::only_used_in_recursion,
6    clippy::option_if_let_else,
7    clippy::collapsible_else_if,
8    clippy::branches_sharing_code,
9    clippy::explicit_iter_loop,
10    clippy::manual_let_else,
11    clippy::hashset_insert_after_contains,
12    clippy::set_contains_or_insert
13)]
14
15//! # panproto-protocols
16//!
17//! Built-in protocol definitions for panproto.
18//!
19//! Each protocol is defined by a schema theory GAT and an instance theory GAT,
20//! composed via colimit from reusable building-block theories. Every protocol
21//! provides both a parser (native format → `Schema`) and an emitter
22//! (`Schema` → native format) for bidirectional format conversion.
23//!
24//! ## Protocol Categories
25//!
26//! - **Serialization**: Avro, `FlatBuffers`, ASN.1, Bond, `MsgPack`
27//! - **Data Schema**: CDDL, BSON
28//! - **API**: `OpenAPI`, `AsyncAPI`, RAML, JSON:API
29//! - **Database**: `MongoDB`, Cassandra, `DynamoDB`, Neo4j, Redis
30//! - **Web/Document**: `ATProto`, DOCX, ODF
31//! - **Data Science**: Parquet, Arrow, `DataFrame`
32//! - **Domain**: `GeoJSON`, FHIR, RSS/Atom, vCard/iCal, EDI X12, SWIFT MT
33//! - **Config**: K8s CRD, Docker Compose, `CloudFormation`, Ansible
34
35/// Linguistic annotation format protocol definitions.
36pub mod annotation;
37/// API specification protocol definitions.
38pub mod api;
39/// Configuration format protocol definitions.
40pub mod config;
41/// Data schema protocol definitions.
42pub mod data_schema;
43/// Data science and analytics protocol definitions.
44pub mod data_science;
45/// Database schema protocol definitions.
46pub mod database;
47/// Domain-specific protocol definitions.
48pub mod domain;
49/// Shared emit helpers for protocol serialization.
50pub mod emit;
51/// Error types for protocol operations.
52pub mod error;
53/// Raw file protocol for non-code files (README, LICENSE, images, etc.).
54pub mod raw_file;
55/// Serialization and IDL protocol definitions.
56pub mod serialization;
57/// Shared component theory definitions (building-block GATs).
58pub mod theories;
59/// Web and document format protocol definitions.
60pub mod web_document;
61
62pub use error::ProtocolError;
63
64// Re-export existing protocols at crate root for backward compatibility.
65pub use web_document::atproto;