1#![doc(
2 html_logo_url = "https://github.com/cloudwego/volo/raw/main/.github/assets/logo.png?sanitize=true"
3)]
4#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
5#![cfg_attr(docsrs, feature(doc_cfg))]
6#![allow(clippy::result_large_err)]
7
8pub mod body;
9pub mod client;
10pub mod codec;
11#[doc(hidden)]
12pub mod codegen;
13pub mod context;
14pub mod layer;
15pub mod message;
16pub mod metadata;
17pub mod request;
18pub mod response;
19pub mod server;
20pub mod status;
21pub mod tracing;
22pub mod transport;
23
24pub type BoxError = Box<dyn std::error::Error + Send + Sync>;
25pub use client::Client;
26pub use codec::decode::RecvStream;
27pub use futures::stream::BoxStream;
28pub use message::{RecvEntryMessage, SendEntryMessage};
29pub use request::{IntoRequest, IntoStreamingRequest, Request};
30pub use response::Response;
31pub use status::{Code, Status};
32
33pub(crate) const BASE64_ENGINE: base64::engine::GeneralPurpose =
34 base64::engine::GeneralPurpose::new(
35 &base64::alphabet::STANDARD,
36 base64::engine::GeneralPurposeConfig::new()
37 .with_encode_padding(false)
38 .with_decode_padding_mode(base64::engine::DecodePaddingMode::Indifferent),
39 );