sigil_parser/protocol/mod.rs
1//! Sigil Protocol Support
2//!
3//! This module provides comprehensive protocol support for the Sigil standard library,
4//! enabling programs to communicate across network boundaries using various protocols.
5//!
6//! ## Supported Protocols
7//!
8//! - **gRPC**: High-performance RPC framework with Protocol Buffers
9//! - **HTTP**: HTTP/1.1 and HTTP/2 client with streaming support
10//! - **WebSocket**: Bidirectional real-time communication
11//! - **GraphQL**: Flexible query language client
12//! - **Kafka**: Event streaming and message queue
13//! - **AMQP**: Message queue protocol (RabbitMQ compatible)
14//!
15//! ## Philosophy
16//!
17//! All network data is treated as "reported" (~) evidence by default,
18//! requiring explicit validation to promote to "known" (!) status.
19//! This ensures programs explicitly handle the uncertainty inherent
20//! in distributed systems.
21
22#[cfg(feature = "protocol-core")]
23pub mod common;
24
25#[cfg(feature = "http-client")]
26pub mod http;
27
28#[cfg(feature = "grpc")]
29pub mod grpc;
30
31#[cfg(feature = "websocket")]
32pub mod websocket;
33
34#[cfg(feature = "kafka")]
35pub mod kafka;
36
37#[cfg(feature = "amqp")]
38pub mod amqp;
39
40#[cfg(feature = "graphql")]
41pub mod graphql;
42
43// Re-export common types when protocol-core is enabled
44#[cfg(feature = "protocol-core")]
45pub use common::{
46 BackoffStrategy, Headers, ProtocolError, ProtocolResult, RetryConfig, StatusCode, Timeout, Uri,
47};