xref: /aosp_15_r20/external/pigweed/pw_rpc/libraries.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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