different methods for communication between rust server and typescript client(browser)
- all methods except grpc, support code-first approach: rust -> (optional)generate schema -> generate typescript
- all methods support server streaming, but openapi's way is more low level
- all methods support code completion for api methods and parameters