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.
Karchnu c8757d0fb0 | ||
---|---|---|
examples | ||
man | ||
src | ||
tests | ||
.gitignore | ||
Makefile | ||
README.md | ||
project.zsh |
README.md
libipc
libipc - Simple, easy-to-use IPC library
See the introductory man page in man/libipc.7
.
This library is a work in progress, but is already used intensively in production. It works, but we provide no warranty.
Compilation
make
Since 0.7
libipc
have callbacks to use along with switching capabilities, making easier to implement proxies for different communication protocols
Planning for 0.8
For performance improvements within libipc
:
libipc
shouldn't use realloc for each event (new client, new message, etc.) but by batch of a few thousand elementslibipc
should use better internal structures, unrequiring the use of loops (over the whole list of messages or connections) for each actionlibipc
will be rewritten in Zig
Planning for 0.9
libipc
should uselibevent
for performance improvmentslibipc
should be thread-safe
Planning for 1.0
libipc
should have usable bindings in several languages
Implementation design
Memory management
- Prefer stack over mallocs.
- Basic functions (such as usock_) should not handle memory allocation.