Gallery
About
I wrote vibe, a small single-header C library for framed TCP and Unix-domain-socket messaging on Linux:https://github.com/xtellect/vibeIt uses one background epoll thread. Application code polls an inbox queue for CONNECTED, DATA, and DISCONNECTED events, and sends through per-connection outboxes.The pieces I wanted:- TCP or Unix stream sockets - 4-byte length-prefixed messages - non-blocking application-side polling - single-copy fan-out via refcounted payload chunks - explicit per-connection backpressure instead of unbounded queuesFor multicast, the payload is copied once into a refcounted chunk, then queued by reference to each recipient. A 1 KB message to 1,000 peers is one payload allocation/copy plus 1,000 queue nodes, not 1,000 payload copies.It is Linux-only for now: epoll, eventfd, accept4, and Linux abstract Unix sockets. No UDP, TLS, HTTP, or WebSocket layer.This is not meant to be a full networking framework. Iām posting mainly for your inputs/revies, especially around connection lifetimes, backpressure accounting, edge cases, and the queue design.Apache 2.0.
Comments (0)
No comments yet. Be the first to comment!