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**: Protobuf, Avro, Thrift, Cap'n Proto, `FlatBuffers`, ASN.1, Bond, `MsgPack`
27//! - **Data Schema**: JSON Schema, XML/XSD, CSV/Table Schema, YAML, TOML, CDDL, INI, BSON
28//! - **API**: GraphQL, `OpenAPI`, `AsyncAPI`, RAML, JSON:API
29//! - **Database**: SQL, `MongoDB`, Cassandra, `DynamoDB`, Neo4j, Redis
30//! - **Type System**: TypeScript, Python, Rust, Java, Go, Swift, Kotlin, C#
31//! - **Web/Document**: `ATProto`, HTML, CSS, DOCX, ODF, Markdown, JSX, Vue, Svelte
32//! - **Data Science**: Parquet, Arrow, `DataFrame`
33//! - **Domain**: `GeoJSON`, FHIR, RSS/Atom, vCard/iCal, EDI X12, SWIFT MT
34//! - **Config**: HCL, K8s CRD, Docker Compose, `CloudFormation`, Ansible
35
36/// Linguistic annotation format protocol definitions.
37pub mod annotation;
38/// API specification protocol definitions.
39pub mod api;
40/// Configuration format protocol definitions.
41pub mod config;
42/// Data schema protocol definitions.
43pub mod data_schema;
44/// Data science and analytics protocol definitions.
45pub mod data_science;
46/// Database schema protocol definitions.
47pub mod database;
48/// Domain-specific protocol definitions.
49pub mod domain;
50/// Shared emit helpers for protocol serialization.
51pub mod emit;
52/// Error types for protocol operations.
53pub mod error;
54/// Raw file protocol for non-code files (README, LICENSE, images, etc.).
55pub mod raw_file;
56/// Serialization and IDL protocol definitions.
57pub mod serialization;
58/// Shared component theory definitions (building-block GATs).
59pub mod theories;
60/// Programming language type system protocol definitions.
61pub mod type_system;
62/// Web and document format protocol definitions.
63pub mod web_document;
64
65pub use error::ProtocolError;
66
67// Re-export existing protocols at crate root for backward compatibility.
68pub use api::graphql;
69pub use data_schema::json_schema;
70pub use database::sql;
71pub use serialization::protobuf;
72pub use web_document::atproto;