48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
|
|
# libipc
|
|
|
|
libipc - Simple, easy-to-use IPC library
|
|
|
|
See the introductory [man page](man/libipc.7.md).
|
|
|
|
# Compilation
|
|
|
|
`make`
|
|
|
|
|
|
# logging system
|
|
|
|
Logs are in one of the following directories: `$XDG_DATA_HOME/ipc/` or `$HOME/.local/share/ipc/`.
|
|
The log file can be indicated with the `IPC_LOGFILE` environment variable, too.
|
|
|
|
To remove logs: `make LDFLAGS=-DIPC_WITHOUT_ERRORS`
|
|
|
|
# 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
|
|
|
|
# Planning for 0.9
|
|
|
|
- `libipc` should use `libevent` for performance improvments
|
|
- `libipc` should be thread-safe
|
|
|
|
# Planning for 1.0
|
|
|
|
- `libipc` *may* be written in Zig
|
|
- `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.
|