34 releases
0.5.1 | Sep 12, 2024 |
---|---|
0.4.3 | Jul 27, 2024 |
0.4.0 | Mar 30, 2024 |
0.2.25 | Nov 19, 2023 |
0.2.13 | Nov 21, 2022 |
#2166 in Network programming
2,864 downloads per month
Used in tardis
1MB
22K
SLoC
GRPC support for Poem
Example
use poem::{listener::TcpListener, Server};
use poem_grpc::{Request, Response, RouteGrpc, Status};
poem_grpc::include_proto!("helloworld");
struct GreeterService;
impl Greeter for GreeterService {
async fn say_hello(
&self,
request: Request<HelloRequest>,
) -> Result<Response<HelloReply>, Status> {
let reply = HelloReply {
message: format!("Hello {}!", request.into_inner().name),
};
Ok(Response::new(reply))
}
}
#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
let route = RouteGrpc::new().add_service(GreeterServer::new(GreeterService));
Server::new(TcpListener::bind("0.0.0.0:3000"))
.run(route)
.await
}
Safety
This crate uses #![forbid(unsafe_code)]
to ensure everything is implemented in 100% Safe Rust.
MSRV
The minimum supported Rust version for this crate is 1.76.0
.
Contributing
🎈 Thanks for your help improving the project! We are so happy to have you!
License
Licensed under either of
- Apache License, Version 2.0,(LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Poem by you, shall be licensed as Apache, without any additional terms or conditions.
Dependencies
~21–34MB
~652K SLoC