Victor Martinez
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)
note:
- The concept dates back to 1976 [1]
- Paper written by ANDREW D. BIRRELL and BRUCE JAY NELSON
- Back in the days building network application required big expertise and was not user friendly
- They wanted to make it as easy to call a remote service as a local one, very user friendly
- They wanted to make it efficient (Networks were very slow)
- They wanted to make it secure (Networks were not secure)
- RPCRuntime is also known as RPC communications package
- One of the most important work the server developers must do is to define the **interface**
- In that lab, the user-stub and server-stub used to be generated by a program called Lupine.
[1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976).
---
gRPC dictates how you will build your network interface.
Code is generated for you batteries included, you must only fill the gaps.
note:
- All the underlying details about networking, encoding & more is handled for you.
- For clients the feeling must be more of a library one.
- Some implementations wrap the original C library, some don't.
---
## Built on top of HTTP2
So we get for free
- **Multiplexing**
- Header **compression**
- **Server push**
- **TLS**
note:
- Multiplexing & server push are especially relevant in gRPC
---
## 4 types of RPC supported
*Library of modular and reusable components for building robust networking clients and servers*
note:
- It provides a set of basic reusable services
such as timeouts and rate limiting.
---
## Tower service
```rust
pub trait Service