Obsolete
/
libipc-old
Archived
3
0
Fork 0
OLD IMPLEMENTATION. The new one is in Zig and fucking ROCKS: https://git.baguette.netlib.re/Baguette/libipc Inter-Process Communication library based on unix sockets.
This repository has been archived on 2024-06-18. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
Go to file
kanguyen 7678a8ab7a à revoir beaucoup beacoup beacoup 2016-11-04 16:51:17 +01:00
drop tcpselect qui fait pas de la merde 2016-09-26 14:17:36 +02:00
lib à revoir beaucoup beacoup beacoup 2016-11-04 16:51:17 +01:00
misc pubsub: cbor messages, still /t/i/s cbor message to do 2016-09-17 22:57:32 +02:00
pingpong à revoir beaucoup beacoup beacoup 2016-11-04 16:51:17 +01:00
pubsub pubsubd: reorganize 2016-09-19 17:44:06 +02:00
remote à revoir beaucoup beacoup beacoup 2016-11-04 16:51:17 +01:00
.gitignore first cbor test programs added 2016-09-15 23:08:08 +02:00
Makefile Makefile update. 2016-09-02 21:43:19 +02:00
README.markdown first cbor test programs added 2016-09-15 23:08:08 +02:00
project.zsh Makefile update. 2016-09-02 21:43:19 +02:00

README.markdown

connection init (draft)

how things happen

* Service : daemon providing a feature (windowing, audio, …)
* Application : specific application (browser, instant messaging, …)

* [service] : service name
* $pid : application PID
* $index : process index (application point of view)

1. Service creates a pipe named /tmp/[service]
2. Application creates pipes named /tmp/$pid-$index-$version-{in,out}
3. Application sends in /tmp/[service] : $pid $index $version

pure "networking" view (what should go in the pipes)

  1. Application sends in /tmp/[service] : $pid $index $version [...]

messages format

First of all, the application will send a message to the service's pipe in plain text with its PID, the number of time the process already used the service (index) and the version of the communication protocol we want to use between the application and the service.

In order to communicate between the application and the service, we use the CBOR format (RFC 7049). This will be used with some conventions.

CBOR install, programming, debug

libcbor is used in the provided implementations. It is an extensively documented library, easy to install and to work with.

We also strongly encourage the use of the cbor-diag to ensure that you send and receive correctly formatted messages.

overview

The format will be "type : value".

The type will be a simple byte :

* <0 - 15>   : control, meta data
* <16 - 127> : later use
* <128 - 255> : application specific (windowing system, audio system, …)

CBOR type convention

0 - 15

index   | abbreviation  | semantic
0       | close         | to close the communication between the application and the service
1       | message       | to send data 
2       | error         | to send an error message