From c1a4f0893801b234f213d965feadf612577d8546 Mon Sep 17 00:00:00 2001 From: JasterV <49537445+JasterV@users.noreply.github.com> Date: Sun, 15 Jun 2025 17:56:29 +0200 Subject: [PATCH] Update slides --- docs/learning_grpc.md | 58 +++++++++++++------------------------------ 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/docs/learning_grpc.md b/docs/learning_grpc.md index 8078703..da0418d 100644 --- a/docs/learning_grpc.md +++ b/docs/learning_grpc.md @@ -12,10 +12,7 @@ Remote Procedure Calls. An idea to extend transfer of control and transmission of data from one machine to another. - -http://birrell.org/andrew/papers/ImplementingRPC.pdf - - +[http://birrell.org/andrew/papers/ImplementingRPC.pdf](http://birrell.org/andrew/papers/ImplementingRPC.pdf) note: @@ -35,11 +32,10 @@ Things were shared in plain non secured text. [1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976). --- -![image](assets/images/rpc_architecture.png) - -http://birrell.org/andrew/papers/ImplementingRPC.pdf - +RPC implementation + +[http://birrell.org/andrew/papers/ImplementingRPC.pdf](http://birrell.org/andrew/papers/ImplementingRPC.pdf) note: @@ -68,17 +64,11 @@ service PhoneService { } ``` -

Codegen tools will generate gRPC stubs from IDL code -

-

An example of Thrift, an IDL used in Facebook's RPC framework -

- -https://github.com/facebook/fbthrift - +[https://github.com/facebook/fbthrift](https://github.com/facebook/fbthrift) note: @@ -97,9 +87,7 @@ In the paper mentioned above, they wrote the interface using the Mesa interface *gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment.* - -https://grpc.io/ - +[https://grpc.io/](https://grpc.io/) note: @@ -156,9 +144,7 @@ Key-value pairs of data used to provide additional information about a call. Implemented using HTTP/2 headers. - -https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md - +[https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md) note: @@ -295,9 +281,7 @@ note: - **Editor integration** - And more! - -https://buf.build/product/cli - +[https://buf.build/product/cli](https://buf.build/product/cli) note: @@ -305,26 +289,24 @@ Explain that it builds on top of protoc. Be very short here, just mention the to --- -## gRPC in the Rust ecosystem +# gRPC in the Rust ecosystem -grpc +grpc :heart: -rust logo +rust logo --- # Tonic -tonic logo +tonic logo *A gRPC over HTTP/2 rust implementation focused on high performance, interoperability, and flexibility* - -https://github.com/hyperium/tonic - +[https://github.com/hyperium/tonic](https://github.com/hyperium/tonic) note: @@ -491,9 +473,7 @@ let svc = PolicyManagementServiceServer::with_interceptor( Tonic provides a health check service implementing a standard gRPC health checking protocol. - -https://github.com/grpc/grpc/blob/master/doc/health-checking.md - +[https://github.com/grpc/grpc/blob/master/doc/health-checking.md](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) note: @@ -516,13 +496,9 @@ service Health { } ``` -

This definition is provided by the official gRPC docs, each language runtime might implement it or not. -

- -https://github.com/grpc/grpc/blob/master/doc/health-checking.md - +[https://github.com/grpc/grpc/blob/master/doc/health-checking.md](https://github.com/grpc/grpc/blob/master/doc/health-checking.md) --- ## Enabling the health service @@ -631,7 +607,7 @@ Timeout -> SSRHL -> Tracing -> SSRHL -> Auth -> Starsky service ## Building a layered service -tower +tower --- Now let's dive into real middleware implementations @@ -967,6 +943,6 @@ It is this simple :) --- -## Thank you for your time +# Thank you for your time :heart: