ipcd is a program to handle networking for all other software.
Security is TBD. Currently, only TCPd is implemented, which means no communication security.
ipcd has to filter the connections to local services.
ipcd has to authenticate clients asking for a service.
Central networking management allows for functionalities such as redirections. For example, a local client asking for the authentication can be authenticated with a distant authentication service.
Configuration is yet to be defined.
This program can be used as follow:
# with some static rules ipcd --allow in authd tls:example.com --deny in * * --allow out pong tls:pong.example.com:9000 ipcd --redirect authd nextversion-authd
ipcd is requested each time a client is launched when the right environment variable is used.
For example, we want to connect to a distant
Currently, the ipcd only works with tcp and unix routes.
v0.1: (current) ipcd (redirections), tcpd
ipcdunderstands URIs (
tcpscheme is understood:
unixscheme is understood:
ipcdperforms a redirection
v0.2: websocketd is up and running, some documentation is available
- IPC services are accessible via WebSockets
websocketcis an example of client for it, not requiring libipc
- pongd is a service template, up and running,
- v0.3: websocket scheme for clients, transparently usable through
- v0.4: firewall + redirections
- v0.5: static configuration: default routes, authentication
- v0.6: tlsd built-in, pre-shared keys
- v0.7: udpd
- v1.0: TBD
ipcdunderstand the request from the client then contacts the local service responsible for the communication protocol required
once the distant connection is established (between the two
tlsdservices for example)
ipcdprovides a file descriptor to the client
finally, the client can perform requests to the distant service transparently
during the connection:
client <-> ipcd <-> tlsd <=> tlsd <-> ipcd <-> service
client <-> tlsd <=> tlsd <-> server