libipc-old/README.md

47 lines
1.3 KiB
Markdown
Raw Normal View History

2016-12-23 13:06:31 +01:00
# libipc
2017-01-01 18:48:06 +01:00
libipc - Simple, easy-to-use IPC library
2017-01-01 18:48:06 +01:00
2020-12-08 23:39:25 +01:00
See the introductory man page in `man/libipc.7`.
2020-12-09 15:33:54 +01:00
See the presentation in [docs/presentation.md](docs/presentation.md).
2020-12-08 23:39:25 +01:00
> This library is a work in progress, but is already used intensively in production.
> It works, but we provide no warranty.
2016-12-23 13:06:31 +01:00
2019-07-27 15:47:50 +02:00
# 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 elements
- `libipc` should use better internal structures, unrequiring the use of loops (over the whole list of messages or connections) for each action
2020-12-08 23:39:25 +01:00
- `libipc` will be rewritten in Zig
# Planning for 0.9
- `libipc` should use `epoll/kqueue` for performance improvments
* new functions will be added to the API
* **but** we'll keep the same API for applications with no need for threading (way simpler implementation)
- `libipc` should be thread-safe
# Planning for 1.0
- `libipc` should have usable bindings in several languages
# Implementation design
## Memory management
1. Prefer stack over mallocs.
2. Basic functions (such as *usock_*) should not handle memory allocation.