[Complete] A simple daemonless system for broadcasting messages locally
  • C 67.1%
  • Roff 28.4%
  • Makefile 4.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Mattias Andrée 7c85cc9891
m fixes
Signed-off-by: Mattias Andrée <m@maandree.se>
2026-02-22 13:33:51 +01:00
doc Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
.gitignore Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
arg.h Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-broadcast.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-chgrp.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-chmod.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-chown.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-create.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-listen.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-remove.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus-wait.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus.1 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus.5 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus.c Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus.h Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus.texinfo m fixes 2026-02-22 13:33:51 +01:00
bus_chmod.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_chown.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_close.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_create.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_open.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_poll.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_read.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_unlink.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
bus_write.3 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
config.mk m fixes 2026-02-22 13:33:51 +01:00
fdl.texinfo Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
libbus.7 Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00
libbus.c m fixes 2026-02-22 13:33:51 +01:00
LICENSE Update e-mail 2024-10-06 10:20:49 +02:00
Makefile Fix install path for license 2018-10-26 23:18:34 +02:00
README Simplify, do not install examples or info manual, and change license 2017-12-11 23:13:37 +01:00

NAME
	bus - A simple daemonless system for broadcasting messages locally

DESCRIPTION
	bus is a simple daemonless system for broadcasting messages locally.
	It is a lightweight alternative to a two-phase interprocess flexible
	barrier.

	bus uses a System V semaphore array and System V shared memory.
	Buses are named; the key of the semaphore array and the shared
	memory is stored in a regular file.

	The shared memory used by bus is always 2048 bytes. Additionally
	all messages should be encoded in UTF-8 and not contain any NULL
	characters, except they MUST always end with a zero byte.
	Furthermore messages should be prefixed with the process
	identifer of the process whence the message originated, followed
	by a space. If the process is ephemeral, 0 should be used instead
	of the process identifier.

	Communication over bus is synchronous. The broadcast call does
	not return until all listeners have received (and copied) the
	message. A malfunctioning program can lock the bus.

	This software package contains a C library and a command line
	utility. The package python-bus provides a Python 3 module.

RATIONALE
	We need an interprocess communication system similar to message
	queues. But we need broadcasting rather than anycasting, so we
	have a fast, simple and daemonless system for announcing events
	to any processes that might be interested.

SEE ALSO
	libshr(7), cmdipc(1), msgctl(3), semctl(3), shmctl(3), mqueue.h(0),
	semaphore.h(0), sem_overview(7), mmap(3), pipe(3), socketpair(3),
	socket(3), unix(7), cmsg(3), kill(3), eventfd(2),  memfd_create(2),
	pthread_mutex_destroy(3), pthread_rwlock_destroy(3), futex(7),
	pthread_spin_destroy(3), pthread_cond_destroy(3), lockf(3), flock(2),
	fcntl(3), ioctl(3), mkfifo(3), rendezvous(2), 9p(2), libdoor(3),
	python-bus