commit
parent
149fb19fc5
commit
9636d4be02
24
README.md
24
README.md
|
@ -1,4 +1,4 @@
|
||||||
# the problem
|
# Problem
|
||||||
|
|
||||||
End-user applications are huge, with tons of libraries used and are a pain in the ass to maintain.
|
End-user applications are huge, with tons of libraries used and are a pain in the ass to maintain.
|
||||||
Libraries are huge, with a lot of things happening, with changes that break everything on a regular basis, with almost each time very few people working on it.
|
Libraries are huge, with a lot of things happening, with changes that break everything on a regular basis, with almost each time very few people working on it.
|
||||||
|
@ -11,7 +11,7 @@ Start a new project is not an easy task neither.
|
||||||
- Is this library working on every platform?
|
- Is this library working on every platform?
|
||||||
- Are the libraries I need (and the good version) available for my platform, do I need to install SomeBullshitOS or ProtoContenerizator3000 to code?
|
- Are the libraries I need (and the good version) available for my platform, do I need to install SomeBullshitOS or ProtoContenerizator3000 to code?
|
||||||
|
|
||||||
# how to change that ?
|
# How to change that?
|
||||||
|
|
||||||
**Network protocols**
|
**Network protocols**
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Just ask a service !
|
||||||
You want to download a file, you will always have the same input: a string corresponding to the file to get, such as _ftp://example.com/file.txt_.
|
You want to download a file, you will always have the same input: a string corresponding to the file to get, such as _ftp://example.com/file.txt_.
|
||||||
You don't have to worry about the protocol to use in your own application, the burden is on the dedicated *downloading* service.
|
You don't have to worry about the protocol to use in your own application, the burden is on the dedicated *downloading* service.
|
||||||
|
|
||||||
# benefits
|
# Benefits
|
||||||
|
|
||||||
**Awesome abstractions**.
|
**Awesome abstractions**.
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ Still, we think performances won't be much of a problem for most of the everyday
|
||||||
- Services: daemons providing a feature (windowing, audio, network, input, pubsub, …)
|
- Services: daemons providing a feature (windowing, audio, network, input, pubsub, …)
|
||||||
- Applications: end-user applications (browser, mail user agent, instant messaging app, …)
|
- Applications: end-user applications (browser, mail user agent, instant messaging app, …)
|
||||||
|
|
||||||
#### examples
|
#### Examples
|
||||||
|
|
||||||
A browser that can download everything, via every existing protocol.
|
A browser that can download everything, via every existing protocol.
|
||||||
No any specific code in the browser itself and no configuration.
|
No any specific code in the browser itself and no configuration.
|
||||||
|
@ -94,9 +94,9 @@ No specific code needed.
|
||||||
|
|
||||||
Figures, a lot of them, to explain everything.
|
Figures, a lot of them, to explain everything.
|
||||||
|
|
||||||
# connection init (draft)
|
# Connection init (draft)
|
||||||
|
|
||||||
## how things happen
|
## How things happen
|
||||||
|
|
||||||
1. Service creates a unix socket /tmp/service-index-version.sock
|
1. Service creates a unix socket /tmp/service-index-version.sock
|
||||||
1. Application connects to /tmp/service-index-version.sock
|
1. Application connects to /tmp/service-index-version.sock
|
||||||
|
@ -106,19 +106,19 @@ __legend__:
|
||||||
- index: process index (to launch a service several times)
|
- index: process index (to launch a service several times)
|
||||||
- version: service version
|
- version: service version
|
||||||
|
|
||||||
# pure "networking" view (what should go in the sockets)
|
# Networking point of view (what should go in the sockets)
|
||||||
|
|
||||||
#### connection
|
#### Connection
|
||||||
1. Application connects to /tmp/service-index-version.sock
|
1. Application connects to /tmp/service-index-version.sock
|
||||||
1. Service acknowledges (empty message)
|
1. Service acknowledges (empty message)
|
||||||
|
|
||||||
#### disconnection
|
#### Disconnection
|
||||||
1. Application sends a message "CLOSE" to the server
|
1. Application sends a message "CLOSE" to the server
|
||||||
|
|
||||||
#### data
|
#### Data
|
||||||
1. Application or server sends a message "DATA", no acknowledgement
|
1. Application or server sends a message "DATA", no acknowledgement
|
||||||
|
|
||||||
# messages format
|
# Message formats
|
||||||
|
|
||||||
In order to communicate between the application and the service, we use the Type-Length-Value 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.
|
This will be used with some conventions.
|
||||||
|
@ -136,7 +136,7 @@ The type will be a simple byte :
|
||||||
3 | ack | to send an acknowledgment
|
3 | ack | to send an acknowledgment
|
||||||
4 | message | to send data
|
4 | message | to send data
|
||||||
|
|
||||||
# Services Status
|
# Service Status
|
||||||
|
|
||||||
Go to the relevant directory for details.
|
Go to the relevant directory for details.
|
||||||
|
|
||||||
|
|
Reference in New Issue