1.. _module-pw_rpc-libraries: 2 3====================================== 4Client, server, and protobuf libraries 5====================================== 6.. pigweed-module-subpage:: 7 :name: pw_rpc 8 9.. grid:: 1 10 11 .. grid-item-card:: :octicon:`code-square` C++ server and client 12 :link: module-pw_rpc-cpp 13 :link-type: ref 14 :class-item: sales-pitch-cta-primary 15 16 C++ server and client library API guides. Server, client, and 17 server/client libraries are available. Sharing code between 18 servers and clients is possible. RPC calls are represented through 19 a call class; both servers and clients use the same base call class. 20 RPCs can be invoked asynchronously through callbacks or synchronously 21 through a blocking API. RPC calls can be introspected to obtain 22 information that was generated during compilation. 23 24.. grid:: 2 25 26 .. grid-item-card:: :octicon:`code-square` Python client 27 :link: module-pw_rpc-py 28 :link-type: ref 29 :class-item: sales-pitch-cta-secondary 30 31 Python client library API reference. The Python client can 32 send requests and handle responses for a set of channels. 33 The callback-based API supports invoking RPCs asynchronously. 34 There's also an utilities API for extending ``pw_console`` to 35 interact with RPCs. 36 37 .. grid-item-card:: :octicon:`code-square` TypeScript client 38 :link: module-pw_rpc-ts 39 :link-type: ref 40 :class-item: sales-pitch-cta-secondary 41 42 TypeScript client library API guide. Unary-streaming, server-streaming, 43 client-streaming, and bi-directional streaming are supported. 44 RPCs can be invoked asynchronously through callbacks or 45 synchronously through promises. 46 47.. grid:: 2 48 49 .. grid-item-card:: :octicon:`code-square` Nanopb codegen 50 :link: module-pw_rpc_nanopb 51 :link-type: ref 52 :class-item: sales-pitch-cta-secondary 53 54 Nanopb codegen library API guide. Generates services which 55 encode and decode RPC requests and responses as Nanopb message 56 structs. 57 58 .. grid-item-card:: :octicon:`code-square` pw_protobuf codegen 59 :link: module-pw_rpc_pw_protobuf 60 :link-type: ref 61 :class-item: sales-pitch-cta-secondary 62 63 ``pw_protobuf`` codegen library API guide. Generates services which 64 encode and decode RPC requests and responses as ``pw_protobuf`` 65 message structs. 66 67.. toctree:: 68 :maxdepth: 1 69 :hidden: 70 71 C++ server and client <cpp> 72 Python client <py/docs> 73 TypeScript client <ts/docs> 74 Nanopb codegen <nanopb/docs> 75 pw_protobuf codegen <pwpb/docs> 76