Archived
3
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 or pull requests.
Go to file
2016-12-14 23:17:35 +01:00
core TO FIX - suppression de pid pour le process 2016-12-14 23:17:35 +01:00
drop tcpselect qui fait pas de la merde 2016-09-26 14:17:36 +02:00
misc TO FIX - suppression de pid pour le process 2016-12-14 23:17:35 +01:00
pingpong TO FIX - suppression de pid pour le process 2016-12-14 23:17:35 +01:00
pubsub TO FIX - suppression de pid pour le process 2016-12-14 23:17:35 +01:00
tcp rename + modifications pour que ça compile => tcpd cleaned 2016-12-14 22:56:13 +01:00
.gitignore first cbor test programs added 2016-09-15 23:08:08 +02:00
Makefile
project.zsh
README.markdown readme 2016-12-14 22:29:36 +01:00

connection init (draft)

how things happen

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

* service: service name
* index: process index (to launch a service several times)
* version: service version

1. Service creates a unix socket /tmp/service-index-version.sock
2. Application connects to /tmp/service-index-version.sock

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

  1. Application connects to /tmp/service-index-version.sock
  2. Service acknowledges (empty message)

messages format

In order to communicate between the application and the service, we use the Type-Length-Value format. This will be used with some conventions.

programming, debug

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, …)

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
3       | ack           | to send an acknowledgment