| 1 | RGC |
|---|
| 2 | the Remote GLib(-inspired) Call protocol |
|---|
| 3 | development version |
|---|
| 4 | |
|---|
| 5 | The RGC library allows a server and one or more client programs to talk over a |
|---|
| 6 | local or remote connection using both an simple binary protocol (using |
|---|
| 7 | network TCP or local UNIX-domain sockets) and standard-based ones (such as OSC |
|---|
| 8 | and D-BUS), using object-oriented techniques. |
|---|
| 9 | |
|---|
| 10 | It is Free Software, available under a LGPL license. It is written in pure C, |
|---|
| 11 | and depends only on the GLib 2.x library (available from www.gtk.org) and |
|---|
| 12 | standard POSIX system calls. Altought primarily written and tested on GNU/Linux |
|---|
| 13 | systems, it should work on others UNIX and UNIX-like operating systems (it was |
|---|
| 14 | reported to work at least on FreeBSD and Darwin/Apple OS X). A Microsoft Windows |
|---|
| 15 | is in an experimental stage. |
|---|
| 16 | |
|---|
| 17 | It's very much a work in progress (and it WILL change significantly in the |
|---|
| 18 | future), but it is now usable for simple applications. |
|---|
| 19 | It is primarily developed for FreeMix, a Free Software DJ audio mixing |
|---|
| 20 | application, where is used to connect togheter the audio processing backend |
|---|
| 21 | (the "server") to the graphical-or-not user interfaces ("clients"). |
|---|
| 22 | |
|---|
| 23 | Its goals: |
|---|
| 24 | * simple lightweight connection protocol |
|---|
| 25 | * fast response time |
|---|
| 26 | * asyncronous execution |
|---|
| 27 | * an object model built around GLib. More exactly: |
|---|
| 28 | * object creation and destruction |
|---|
| 29 | * getting and setting properties on objects |
|---|
| 30 | * calling methods on objects |
|---|
| 31 | * launching, receving and catching signals |
|---|
| 32 | |
|---|
| 33 | Many parts of the library are implemented using standard GLib functions, to get |
|---|
| 34 | advantage of object data handling, reference counting, ... |
|---|
| 35 | Every value (integers, floats, strings...) is sent to one process to another |
|---|
| 36 | using GValues. |
|---|
| 37 | |
|---|
| 38 | To get an idea of how it works, take a look at the simple examples in the /test |
|---|
| 39 | directory and at the source of FreeMix. |
|---|
| 40 | |
|---|
| 41 | The latest version is available at "http://ciampix.net/proj/freemix". |
|---|