1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//! AMQP 0-9-1 protocol codec for Rust.
//!
//! This crate is the main entry point for the `amq-protocol` workspace. It
//! re-exports the [`tcp`], [`types`], and [`uri`] sub-crates and provides the
//! code-generated [`protocol`] module (produced from the RabbitMQ spec), plus
//! [`auth`] helpers and [`frame`] serialisation/deserialisation utilities.
//!
//! # Feature flags
//!
//! ## Async runtime (pick exactly one)
//!
//! | Flag | Notes |
//! |------|-------|
//! | `tokio` *(default)* | Requires a running Tokio runtime |
//! | `smol` | Uses the smol executor |
//! | `async-global-executor` | Uses async-global-executor |
//!
//! ## TLS backend (pick at most one; `rustls` is the default)
//!
//! | Flag | Notes |
//! |------|-------|
//! | `rustls` *(default)* | TLS via rustls |
//! | `native-tls` | TLS via the platform's native library |
//! | `openssl` | TLS via OpenSSL |
//!
//! ## Rustls certificate store (only when `rustls` is active)
//!
//! | Flag | Notes |
//! |------|-------|
//! | `rustls-platform-verifier` *(default)* | Uses the platform trust store |
//! | `rustls-native-certs` | Loads native root certificates |
//! | `rustls-webpki-roots-certs` | Uses the webpki bundled root set |
//!
//! ## Rustls crypto provider (at least one must be enabled)
//!
//! | Flag | Notes |
//! |------|-------|
//! | `rustls--aws_lc_rs` *(default)* | Uses aws-lc-rs |
//! | `rustls--ring` | Uses ring (more portable) |
//!
//! ## Miscellaneous
//!
//! | Flag | Notes |
//! |------|-------|
//! | `codegen` | Force protocol code regeneration at build time |
//! | `verbose-errors` | More detailed AMQP parser error messages |
//! | `hickory-dns` | Use hickory-dns for name resolution |
/// TCP/TLS connection helpers (re-export of `amq-protocol-tcp`).
pub use amq_protocol_tcp as tcp;
/// AMQP type system and wire-format codec (re-export of `amq-protocol-types`).
pub use amq_protocol_types as types;
/// AMQP URI parsing (re-export of `amq-protocol-uri`).
pub use amq_protocol_uri as uri;
/// SASL authentication helpers for AMQP connections.
/// AMQP frame serialisation and deserialisation.
/// Code-generated AMQP 0-9-1 method and property types derived from the RabbitMQ spec.