Skip to content

cmusatyalab/minirpc

Repository files navigation

WHAT IS MINIRPC?
----------------

miniRPC is a remote procedure call library which works on top of TCP.
It has the following design goals:

- Simple on-the-wire protocol
- Scalability to large numbers of connections
- Automatic stub generation
- No use of a portmapper: clients connect directly to the well-known port for
  a service
- Simple usage model for synchronous RPCs
- Straightforward support for asynchronous RPCs, including out-of-order
  replies, at both client and server
- Application-defined event loop
- Support for bidirectional communication: both the client and the server can
  initiate RPCs
- Support for event notifications, which do not require a reply
- Support for multi-threaded operation with an application-defined threading
  model
- Support for multiple RPC protocols and protocol roles in a single process
- Support for TLS encryption (currently unimplemented)

INSTALLING MINIRPC
------------------

You will need the following utility programs:

- rpcgen (to build stub code)
- doxygen (to build documentation)
- pdflatex (to build PDF documentation)

To install the library and minirpcgen:

./configure
make
make check		(optional)
make install

To build and install HTML documentation:

make html
make install-html

To build and install PDF documentation:

make pdf
make install-pdf

MORE INFORMATION
----------------

For new releases, bug reports, development repositories, and more, visit
our website:

<http://minirpc.cs.cmu.edu/>

You can subscribe to the development mailing list by visiting:

<https://lists.andrew.cmu.edu/mailman/listinfo/minirpc-devel>

LICENSE
-------

This code is distributed "AS IS" without warranty of any kind under the terms
of the GNU Lesser General Public License version 2.1, as shown in the file
COPYING.  The output of minirpcgen is not covered by this license, and may be
distributed, with or without modification, under the terms of your choice.