connectrpc_axum/
lib.rs

1pub mod context;
2pub mod error;
3pub mod handler;
4pub mod layer;
5pub mod message;
6pub mod pipeline;
7pub mod service_builder;
8#[cfg(feature = "tonic")]
9pub mod tonic;
10
11// Re-export key types at the crate root for convenience
12#[cfg(feature = "tonic")]
13pub use crate::tonic::{
14    BoxedBidiStreamCall,
15    BoxedCall,
16    BoxedClientStreamCall,
17    BoxedStream,
18    BoxedStreamCall,
19    CapturedParts,
20    ContentTypeSwitch,
21    FromRequestPartsLayer,
22    IntoBidiStreamFactory,
23    IntoClientStreamFactory,
24    IntoFactory,
25    IntoStreamFactory,
26    // Parts types
27    RequestContext,
28    TonicCompatible,
29    TonicCompatibleBidiStreamHandlerWrapper,
30    TonicCompatibleClientStreamHandlerWrapper,
31    TonicCompatibleHandlerWrapper,
32    TonicCompatibleStreamHandlerWrapper,
33    post_tonic_bidi_stream,
34    post_tonic_client_stream,
35    post_tonic_stream,
36    // Handler types from tonic module
37    post_tonic_unary,
38    unimplemented_boxed_bidi_stream_call,
39    unimplemented_boxed_call,
40    unimplemented_boxed_client_stream_call,
41    unimplemented_boxed_stream_call,
42};
43// Re-export from context module
44pub use context::{
45    BoxedCodec,
46    // Compression header constants
47    CONNECT_ACCEPT_ENCODING,
48    CONNECT_CONTENT_ENCODING,
49    CONNECT_TIMEOUT_MS_HEADER,
50    // Codec trait and boxed type
51    Codec,
52    // Compression types
53    CompressionConfig,
54    CompressionContext,
55    CompressionEncoding,
56    CompressionLevel,
57    ConnectContext,
58    ConnectTimeout,
59    // Errors
60    ContextError,
61    // Envelope compression for streaming
62    EnvelopeCompression,
63    // Built-in codecs
64    GzipCodec,
65    // Idempotency
66    IdempotencyLevel,
67    // Limits
68    MessageLimits,
69    RequestProtocol,
70    // Compression functions
71    compress_bytes,
72    // Timeout
73    compute_effective_timeout,
74    decompress_bytes,
75    // Protocol and context
76    detect_protocol,
77    negotiate_response_encoding,
78    parse_envelope_compression,
79    parse_timeout,
80    resolve_codec,
81};
82// Feature-gated codec exports
83#[cfg(feature = "compression-br")]
84pub use context::BrotliCodec;
85#[cfg(feature = "compression-deflate")]
86pub use context::DeflateCodec;
87#[cfg(feature = "compression-zstd")]
88pub use context::ZstdCodec;
89// Re-export from pipeline module
90pub use handler::{ConnectHandler, ConnectHandlerWrapper, get_connect, post_connect};
91pub use layer::{BridgeLayer, BridgeService, ConnectLayer, ConnectService};
92pub use pipeline::{RequestPipeline, ResponsePipeline};
93pub use service_builder::MakeServiceBuilder;
94
95// Re-export several crates
96pub use futures;
97pub use pbjson;
98pub use pbjson_types;
99pub use prost;
100pub use serde;
101
102pub use prelude::*;
103
104pub mod prelude {
105    //! A prelude for `axum-connect` providing the most common types.
106    pub use crate::context::{
107        BoxedCodec,
108        // Compression header constants
109        CONNECT_ACCEPT_ENCODING,
110        CONNECT_CONTENT_ENCODING,
111        CONNECT_TIMEOUT_MS_HEADER,
112        // Codec trait and boxed type
113        Codec,
114        CompressionConfig,
115        CompressionContext,
116        CompressionEncoding,
117        CompressionLevel,
118        ConnectContext,
119        ConnectTimeout,
120        // Errors
121        ContextError,
122        // Compression types
123        EnvelopeCompression,
124        // Built-in codecs
125        GzipCodec,
126        // Idempotency
127        IdempotencyLevel,
128        // Limits
129        MessageLimits,
130        RequestProtocol,
131        // Compression functions
132        compress_bytes,
133        // Timeout
134        compute_effective_timeout,
135        decompress_bytes,
136        // Protocol and context
137        detect_protocol,
138        negotiate_response_encoding,
139        parse_timeout,
140        resolve_codec,
141    };
142    // Feature-gated codec exports for prelude
143    #[cfg(feature = "compression-br")]
144    pub use crate::context::BrotliCodec;
145    #[cfg(feature = "compression-deflate")]
146    pub use crate::context::DeflateCodec;
147    #[cfg(feature = "compression-zstd")]
148    pub use crate::context::ZstdCodec;
149
150    pub use crate::error::{Code, ConnectError, ErrorDetail};
151    pub use crate::handler::{ConnectHandler, ConnectHandlerWrapper, get_connect, post_connect};
152    pub use crate::layer::{BridgeLayer, BridgeService, ConnectLayer, ConnectService};
153    pub use crate::message::{ConnectRequest, ConnectResponse, StreamBody, Streaming};
154    pub use crate::pipeline::{RequestPipeline, ResponsePipeline};
155    pub use crate::service_builder::MakeServiceBuilder;
156    #[cfg(feature = "tonic")]
157    pub use crate::tonic::{
158        BoxedBidiStreamCall, BoxedCall, BoxedClientStreamCall, BoxedStream, BoxedStreamCall,
159        CapturedParts, ContentTypeSwitch, FromRequestPartsLayer, IntoBidiStreamFactory,
160        IntoClientStreamFactory, IntoFactory, IntoStreamFactory, RequestContext, TonicCompatible,
161        TonicCompatibleBidiStreamHandlerWrapper, TonicCompatibleClientStreamHandlerWrapper,
162        TonicCompatibleHandlerWrapper, TonicCompatibleStreamHandlerWrapper, post_tonic_bidi_stream,
163        post_tonic_client_stream, post_tonic_stream, post_tonic_unary,
164        unimplemented_boxed_bidi_stream_call, unimplemented_boxed_call,
165        unimplemented_boxed_client_stream_call, unimplemented_boxed_stream_call,
166    };
167}