# eRPC

An open-source remote procedure call system designed for multichip embedded systems and heterogeneous multicore SoCs, using plain C for remote functions and a small code footprint.

eRPC (Embedded RPC) is a remote procedure call system built for tightly coupled multichip embedded systems and heterogeneous multicore systems on a chip, distinguishing itself from general-purpose RPC systems such as Apache Thrift by targeting plain C for remote functions and keeping a small code size. Client and server code is generated for each remote interface and then wired to a chosen transport.

Supported transports include CMSIS UART, NXP Kinetis SPI and DSPI, POSIX and Windows serial ports, TCP/IP, mainly used for testing, NXP RPMsg-Lite and RPMsg TTY, SPIdev on Linux, USB CDC and the NXP Messaging Unit, and the project is structured so new transport classes are straightforward to add.

eRPC is also distributed as the eRPC middleware component of NXP's MCUXpresso SDK, alongside its standalone repository, and is written in C++ under the BSD-3-Clause license.

Website: https://github.com/EmbeddedRPC/erpc
