libmill - Go-style concurrency in C

  •        76

Libmill is a library that introduces Go-style concurrency to C. It can execute up to 20 million coroutines and 50 million context switches per second. It also contains simple networking and file access library that allows users to quickly bootstrap application development.



Related Projects

libdill - Structured concurrency in C

Libdill is a C library that makes writing structured concurrent programs easy. There is no interaction between threads. Each thread is treated as a separate process. Channels are always unbuffered. Coroutines can be canceled. Generally speaking, though, libdill's concurrency primitives are only a bit slower than basic C flow control statements. A context switch has been seen to execute in as little as 6 ns, with coroutine creation taking 26 ns. Passing a message through a channel takes about 40 ns.

pthreads - Threading for PHP

This project provides multi-threading that is compatible with PHP based on Posix Threads. It can execute any and all predefined and user declared methods and functions asynchronously. It has built-in support of Synchronization, Synchronized Methods.

FiberTaskingLib - A library for enabling task-based multi-threading

This is a library for enabling task-based multi-threading. It allows execution of task graphs with arbitrary dependencies. Dependencies are represented as atomic counters. Under the covers, the task graph is executed using fibers, which in turn, are run on a pool of worker threads (one thread per CPU core). This allows the scheduler to wait on dependencies without task chaining or context switches.

node-ipc - Inter Process Communication Module for node supporting Unix sockets, TCP, TLS, and UDP

a nodejs module for local and remote Inter Process Communication with full support for Linux, Mac and Windows. It also supports all forms of socket communication from low level unix and windows sockets to UDP and secure TLS and TCP sockets. This work is licenced via the DBAD Public Licence.

Threading.Net : Multi threads, threadpool, backgroundworker windows form sample

Threading.Net, is a small windows form application that highlights the benefits of multithreaded programming by comparing in parallel, using progessbars, the same process running in single thread and in multi thread mode.

libuv - Cross platform Asynchronous I/O

libuv is a multi-platform support library with a focus on asynchronous I/O. It was primarily developed for use by Node.js, but it’s also used by Luvit, Julia, pyuv, and others. Its feature includes event loop backed by epoll, kqueue, IOCP, event ports. Asynchronous TCP and UDP sockets, Asynchronous DNS resolution, Thread pool, Signal handling and lot more.

C++ Portable Types Library (PTypes)

PTypes is a simple alternative to the STL that includes multithreading and networking. It defines dynamic strings, character sets, lists and other basic data types along with threads, synchronization primitives, named pipes and IP sockets.

Managed Task Framework .NET Runtime

The MTF.NET Runtime is a multi-threaded scheduler designed to execute high-performance .NET applications efficiently across multiple CPU cores.

JCTools - Java Concurrency Tools for the JVM

Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.

threads.js - Easy to use, yet powerful multi-threading library for node.js and the browser.

Javascript thread library. Uses web workers when run in browsers and child processes when run by node.js. Also supports browsers which do not support web workers.You don't have to write the thread's code inline. The file is expected to be a commonjs module (so something that uses module.exports = ...), for node and browser.

Stlab Libraries - C++ Concurrency Library

Stlab Concurrency library provides high level constructs for implementing algorithms that eases the use of multiple CPU cores while minimizing the contention.

OpenTop C++ Library

OpenTop is a cross-platform, high-performance C++ class library providing features similar to (and modelled on) core Java facilities such as resource management, networking, multi-threading, Unicode and XML parsing.


DyConnect is a cross-platform networking library for C++. Features include: synchronized variables for rapid development of networked games, multi-threaded TCP/IP, low-level UDP sockets, support for IPv4 and IPv6, and data compression.

Phone as a Remote Control

PAARC is a library that enables Windows Phone 7 devices to be used as remote control or input devices for any .NET desktop application. Supports raw (multi-)touch input, gestures (tap, double-tap, hold, pinch, drag, flick), sensors (accelerometer, compass, gyroscope, combined ...


NetSockets is a .NET class library that provides easy-to-use, multi-threaded, event-based, client and server network communication.

nanomsg - High Performance Messaging Library

The nanomsg library is a simple high-performance implementation of several "scalability protocols". These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket. It aims to make the networking layer fast, scalable, and easy to use.

Packet Rush Networking Framework

The Packet Rush Networking Framework (PRNF) provides a client/server networking layer that abstracts away from the underlying communication mechanism such as UDP or TCP.