Version 1.0 of Gracht RPC
A lightweight, cross-platform, modular and dependency free protocol library. Gracht is built upon an abstracted concept of links, which can be anything and hence allows gracht to work on any platform. The links that are provided by default are unix/windows-sockets and a native interface for the Vali OS IPC (which the library is originally built for). Gracht protcols are defined in the XML format, where we support different kinds of primitives:
- Datatypes
- Enums
- Synchronous function calls
- Asynchronous function calls
- Asynchronous events with parameters
The library itself supports different kind of ways to send/receive messages. This can be done individually or in bulk. Multiple messages can be invoked and awaited with a single call.
Links are defined in include/gracht/links and are seperate objects that must be created before the client or server gets created/initialized. If you want to implement your own link interface you can take a look at the required functions under /include/gracht/link/link.h.
Supported links:
- Socket
Supported languages for code generation are:
- C
Libraries the core library depends on:
- C11 threads or pthreads (linux only)