A fast and consistent wire protocol for IPC
  • C++ 96%
  • CMake 3%
  • Nix 1%
Find a file
carlo711 85148a8e61
client: read pending data before handling POLLHUP (#27)
checking POLLHUP only when POLLIN is not set, ensuring any pending data
is always drained before treating the connection as closed.
2026-05-10 11:58:34 +01:00
.github/workflows CI: don't run twice for non-fork PRs 2026-04-17 14:22:25 +03:00
docs docs: add wire docs 2026-02-04 01:42:58 +00:00
include/hyprwire serverObject: call onDestroy on objects if the client dies 2026-04-20 17:30:46 +01:00
nix tests: add unit tests (#22) 2026-04-16 20:54:22 +01:00
scanner scanner: hold strong refs for objects 2026-04-20 17:25:02 +01:00
src client: read pending data before handling POLLHUP (#27) 2026-05-10 11:58:34 +01:00
tests core: fix FreeBSD support for peer process identification (#25) 2026-04-28 15:58:49 +01:00
.clang-format core: initial commit 2025-10-03 19:11:06 +01:00
.clang-tidy core: initial commit 2025-10-03 19:11:06 +01:00
.gitignore core: add a protocol scanner (#1) 2025-10-14 01:53:16 +02:00
CMakeLists.txt cmakelists: don't build tests in release 2026-04-21 00:42:55 +01:00
flake.lock flake.lock: update 2026-03-02 16:58:40 +02:00
flake.nix nix: separate overlay with deps 2026-03-02 16:52:25 +02:00
hyprwire.pc.in core: initial commit 2025-10-03 19:11:06 +01:00
LICENSE Initial commit 2025-10-03 16:08:21 +02:00
README.md docs: add wire docs 2026-02-04 01:42:58 +00:00
VERSION version: bump to 0.3.1 2026-04-26 00:30:02 +01:00

hyprwire

A fast and consistent wire protocol for IPC

What is hyprwire

Hyprwire is a fast and consistent wire protocol, and its implementation. This is essentially a "method" for processes to talk to each other.

How does hyprwire differ from other things?

Hyprwire is heavily inspired by Wayland, and heavily anti-inspired by D-Bus.

Hyprwire is:

  • Strict: both sides need to be on the same page to communicate. No "random data" is allowed.
  • Fast: initial handshakes are very simple and allow for quick information exchange (including one-shot operations)
  • Simple to use: the API uses modern C++ and abstracts away any memory-sensitive operations
  • Simple internally: the protocol itself is simple and straightforward to parse / write your own implementation

Developer wire docs

See WIRE.md