sustrik/libmill logo

sustrik/libmill

Free

Go-style concurrency in C

FreeFree tier
Type
Open Source

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