Skip to content

Version 1.0 of Gracht RPC

Compare
Choose a tag to compare
@Meulengracht Meulengracht released this 15 Apr 05:59
· 127 commits to main since this release

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)