https://github.com/bsd-ac/imsg-compat
Unofficial port of OpenBSD's imsg utilities
https://github.com/bsd-ac/imsg-compat
ipc linux unix
Last synced: 5 months ago
JSON representation
Unofficial port of OpenBSD's imsg utilities
- Host: GitHub
- URL: https://github.com/bsd-ac/imsg-compat
- Owner: bsd-ac
- License: isc
- Created: 2020-12-12T22:28:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T22:16:19.000Z (almost 2 years ago)
- Last Synced: 2024-09-06T06:27:03.084Z (almost 2 years ago)
- Topics: ipc, linux, unix
- Language: C
- Homepage: https://man.openbsd.org/imsg_init.3
- Size: 45.9 KB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenBSD IMSG
[](https://github.com/bsd-ac/imsg-compat/releases) [](https://github.com/bsd-ac/imsg-compat/blob/master/LICENSE) [](https://github.com/bsd-ac/imsg-compat/issues) [](https://github.com/bsd-ac/imsg-compat/issues) [](https://travis-ci.com/bsd-ac/imsg-compat)
This is an unofficial port of OpenBSD's imsg interface to linux.
[](https://repology.org/project/imsg-compat/versions)
## Description
The **imsg** functions provide a simple mechanism for communication
between local processes using sockets. Each transmitted message is
guaranteed to be presented to the receiving program whole.
They are commonly used in privilege separated processes, where
processes with different rights are required to cooperate.
## Installation
The port has been tested to compile and install with GCC 9.3.0 and
Clang 11.0.0, with GNU Make.
```
make
make test
make install
man imsg_init
```
PS: This port requires ** and if using glibc, then >=2.25.0,
for the `explicit_bzero` function.
## Usage
This port creates both a shared library `libimsg.so` and a static library
`libimsg.a`. To use them, just link with `-limsg`.
## Modifications
This port is as faithful as possible to the OpenBSD implementation.
The only addition is the [src/_imsg_compat.h](src/_imsg_compat.h) header
file which defines static standalone implementations of compat functions.
## Credits
The port has been made possible due to the excellent works of the tmux
team and of course OpenBSD for creating it.
## References
- https://man.openbsd.org/imsg_init.3