sustrik/libmill
FreeGo-style concurrency in C
FreeFree tier
About sustrik/libmill
Libmill is a C library that brings Go-style concurrency to C, providing primitives such as channels (chan) and coroutines (cr) for lightweight concurrent programming. It includes support for event-driven I/O via epoll, kqueue, and poll, as well as networking capabilities (TCP, UDP), SSL/TLS, DNS resolution, and timers. The library is open source under the MIT license and has garnered over 3.2k stars on GitHub.
Key Features
Channels for inter-coroutine communication
Lightweight coroutines (goroutine-like)
Event-driven I/O with epoll, kqueue, and poll backends
TCP and UDP socket support
SSL/TLS integration
DNS resolution
Timers for scheduling
Cross-platform (Linux, macOS, etc.)
Pros & Cons
Pros
- Familiar Go-style concurrency model for C developers
- Lightweight coroutines with low overhead
- Multiple event loop backends for portability
- Includes networking, SSL, and DNS out of the box
- Open source with MIT license
Best For
Concurrent programming in CBuilding high-performance network serversImplementing coroutine-based synchronous I/OPrototyping Go-like concurrency patterns in C