Obsolete
/
libipc-old
Archived
3
0
Fork 0
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.
This repository has been archived on 2024-06-18. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
Go to file
Karchnu 7659766fc0 Minor changes in examples. 2020-10-01 03:19:52 +02:00
examples Minor changes in examples. 2020-10-01 03:19:52 +02:00
man libipc v0.7: callbacks for proxies, better memory management. 2020-07-13 14:12:08 +02:00
src Fix memory leaks and print messages right away when non critical. 2020-10-01 02:47:08 +02:00
tests Test applications up to libipc version 0.7.0. 2020-07-15 16:06:54 +02:00
.gitignore Meaningful error msg, -logging +directory management, indentation. 2020-01-01 12:11:34 +01:00
Makefile Version 0.7.1. Small fix in usock_recv function. 2020-09-01 00:16:43 +02:00
README.md libipc v0.7: callbacks for proxies, better memory management. 2020-07-13 14:12:08 +02:00
project.zsh Version 0.7.1. Small fix in usock_recv function. 2020-09-01 00:16:43 +02:00

README.md

libipc

libipc - Simple, easy-to-use IPC library

See the introductory man page.

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.