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
20pub mod client;
21pub mod codec;
22pub mod encoding;
23pub mod frame;
24pub mod metadata;
25pub mod server;
26pub mod status;
27pub mod timeout;
28
29#[cfg(feature = "codegen")]
30pub use trillium_grpc_codegen as codegen;
31
32#[cfg(feature = "macros")]
33pub use trillium_grpc_macros::generate;
34
35pub use client::{
36    BidiConn, CancelHandle, GrpcClientConn, ServiceClient, ServiceClientExt, StreamingConn,
37    UnaryConn, with_service_prefix,
38};
39pub use codec::{Codec, Prost};
40pub use encoding::Encoding;
41pub use futures_lite::Stream;
42pub use metadata::{Metadata, MetadataError, MetadataValue};
43pub use server::{
44    BidiResponder, Channel, GrpcServerConn, RequestStream, Server, dispatch::prepare_grpc_conn,
45    drive_bidi_upgrade, has_bidi_upgrade,
46};
47pub use status::{Code, Status};
48
49/// Re-export of the [`prost`] runtime.
50///
51/// Generated message types derive `::trillium_grpc::prost::Message`, so a crate
52/// that depends only on `trillium-grpc` can use the generated code without a
53/// direct `prost` dependency.
54pub use prost;
55
56/// Re-export of [`trillium_client`].
57///
58/// Generated service clients name [`trillium_client::Client`] through this
59/// re-export, so a crate that depends only on `trillium-grpc` can use a
60/// generated client without a direct `trillium-client` dependency.
61pub use trillium_client;
62
63#[cfg(test)]
64#[doc = include_str!("../README.md")]
65mod readme {}