Skip to main content

trillium_grpc/
lib.rs

1#![doc = include_str!("../docs/root.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3
4#[cfg(doc)]
5#[doc = include_str!("../docs/generating.md")]
6pub mod generating {}
7
8#[cfg(doc)]
9#[doc = include_str!("../docs/serving.md")]
10pub mod serving {}
11
12#[cfg(doc)]
13#[doc = include_str!("../docs/calling.md")]
14pub mod calling {}
15
16#[cfg(doc)]
17#[doc = include_str!("../docs/advanced.md")]
18pub mod advanced {}
19
20#[cfg(feature = "client")]
21#[cfg_attr(docsrs, doc(cfg(feature = "client")))]
22pub mod client;
23pub mod codec;
24pub mod content_type;
25pub mod encoding;
26pub mod frame;
27pub mod metadata;
28#[cfg(feature = "server")]
29#[cfg_attr(docsrs, doc(cfg(feature = "server")))]
30pub mod server;
31pub mod status;
32pub mod timeout;
33
34#[cfg(feature = "codegen")]
35pub use trillium_grpc_codegen as codegen;
36
37#[cfg(feature = "macros")]
38pub use trillium_grpc_macros::{generate, generate_client, generate_server};
39
40#[cfg(feature = "client")]
41#[cfg_attr(docsrs, doc(cfg(feature = "client")))]
42pub use client::{
43    BidiConn, CancelHandle, GrpcClientConn, ServiceClient, ServiceClientExt, StreamingConn,
44    UnaryConn, with_service_prefix,
45};
46pub use codec::{Codec, Prost};
47pub use encoding::Encoding;
48pub use futures_lite::Stream;
49pub use metadata::{Metadata, MetadataError, MetadataValue};
50#[cfg(feature = "server")]
51#[cfg_attr(docsrs, doc(cfg(feature = "server")))]
52pub use server::{
53    BidiResponder, Channel, GrpcServerConn, RequestStream, Server, dispatch::prepare_grpc_conn,
54    drive_bidi_upgrade, has_bidi_upgrade,
55};
56pub use status::{Code, Status};
57
58/// Re-export of the [`prost`] runtime.
59///
60/// Generated message types derive `::trillium_grpc::prost::Message`, so a crate
61/// that depends only on `trillium-grpc` can use the generated code without a
62/// direct `prost` dependency.
63pub use prost;
64
65/// Re-export of [`trillium_client`].
66///
67/// Generated service clients name [`trillium_client::Client`] through this
68/// re-export, so a crate that depends only on `trillium-grpc` can use a
69/// generated client without a direct `trillium-client` dependency.
70#[cfg(feature = "client")]
71#[cfg_attr(docsrs, doc(cfg(feature = "client")))]
72pub use trillium_client;
73
74#[cfg(test)]
75#[doc = include_str!("../README.md")]
76mod readme {}