[23 total ]
X Window System protocol binding library. Originally for C bindings, but now generalized to several other languages. This is a lightweight replacement for the binding portion of Xlib, featuring thread transparency, XML extensibility, and a small
... [More]
and straightforward interface.
The version of Xlib currently being distributed by X.Org uses XCB for its transport; this allows XCB and Xlib calls to be freely mixed for ease in porting applications and toolkits.
Most of the XCB C code is autogenerated from XML descriptions. (This may be why Ohloh complains about the degree of code commenting.) [Less]
Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads. The microthreads
... [More]
that Stackless adds to Python are a cheap and lightweight convenience which can if used properly, give the following benefits:
* Improved program structure.
* More readable code.
* Increased programmer productivity. [Less]
Port of collection of Plan 9 utilities and protocol implementation to generic POSIX/X11R6 environment. Includes acme editor, factotum authentication agent, venti fs server and clients, rc shell, rio window manager and much more. All programs support UTF-8. Maintained by Russ Cox.
PM2 is a low level generic runtime system which integrates multithreading management (Marcel) and a high performance multi-cluster communication library (Madeleine).
This project is a modern C++ library with a focus on portability and program correctness. It strives to be easy to use right and hard to use wrong. Thus, it comes with extensive documentation and thorough debugging modes. The library provides a
... [More]
platform abstraction layer for common tasks such as interfacing with network services, handling threads, or creating graphical user interfaces. Additionally, the library implements many useful algorithms such as data compression routines, linked lists, binary search trees, linear algebra and matrix utilities, machine learning algorithms, XML and text parsing, and many other general utilities. [Less]
Equalizer is an open source programming interface and resource management system for scalable OpenGL applications. An Equalizer application can run unmodified on any visualization system, from a singlepipe workstation to large scale graphics clusters
... [More]
and multi-GPU workstations. Equalizer is built upon a parallel OpenGL-based programming interface solving problems that are common to any multipipe application. The API is minimally invasive, making application porting as easy as possible while delivering maximum performance. [Less]
IntelĀ® Threading Building Blocks (TBB) offers a rich and complete approach to expressing parallelism in a C++ program. It is a library that helps you take advantage of multi-core processor performance without having to be a threading expert.
... [More]
Threading Building Blocks is not just a threads-replacement library. It represents a higher-level, task-based parallelism that abstracts platform details and threading mechanism for performance and scalability. [Less]
A platform-independent, multi-threading and synchronization library for C++
A set of all sorts of little libraries I created to aid me in my daily adventures into advanced C# programming.
Contains Threading, Collections, Reflection, Serialization, and bits and pieces of other stuff (like winforms and windows).
The project Mandala helps the development of concurrent and/or distributed applications. It is based on the asynchronous reference concept which provide asynchronous and potentially remote method invocation.
libpthread-stubs provides stub functions for pthreads as weak aliases for platforms on which libc does not provide these stubs. Linking to both libc and libpthread-stubs will always provide a full set of pthread stubs, allowing programs and
... [More]
libraries to portably use pthreads when linked to pthreads and improve single-threaded performance when not linked to pthreads. [Less]
SAGE is a game and simulation engine written in C#, utilizing massive parallelism and (exchangeable) middleware solutions, designed for extensibility and simplicity.
nCore is an efficient and portable C++ library for lazy developers.
It includes a set of several satellite C++ classes to perform :
- Threading
- FileIO (with endian-awareness)
- Networking (TCP, UDP, IPv4, IPv6)
- High-Perf Timing
- Easy
... [More]
logging with plugable sinks
- Memory Alloc Debugging
- Hashing (MD5, String, CRC32, CRC16, CRC8)
- Loading of dynamic libraries (shared objects)
- Dog-tagging (your final application/library binary file(s))
- Handling wide string manipulation methods through a single class (StringA)
- and more...
Each of those features can be turned off at compile-time to make the final binary file smaller.
nCore is designed to run on Windows, Linux (x86, ARM). Other platforms may become supported upon (patch) request :) [Less]
Jetlang provides a high performance java threading library. The library is based upon Retlang.
The library is a complement to the java.util.concurrent package introduced in 1.5 and should be used for message based concurrency similar to event based
... [More]
actors in Scala.
The library does not provide remote messaging capabilities. It is designed specifically for high performance in-memory messaging.
Basic Example // start thread backed receiver.
// Lighweight fibers can also be created using a thread pool
Fiber receiver = new ThreadFiber();
receiver.start();
// create java.util.concurrent.CountDownLatch to notify when message arrives
final CountDownLatch latch = new CountDownLatch(1);
// create channel to message between threads
Channel channel = new MemoryChannel();
Callback onMsg = new Callback() {
public void onMessage(String message) {
//open latch
latch.countDown();
}
};
//add subscription for message on receiver thread
channel.subscribe(receiver, onMsg);
//publish message to receive thread. the publish method is thread safe.
channel.publish("Hello");
//wait for receiving thread to receive message
latch.await(10, TimeUnit.SECONDS);
//shutdown thread
receiver.dispose();Browse the api [Less]
A C++ high-level yet efficent multithreading library, portable across pthread-enabled platforms (and at a later developement stage also natively on windows). Implements also low level primitives for faster multithreading.
Lockless Multi-Reader, Multi-Writer Transaction Capable Hash Tables
IntroductionI began writing what would become this library back in 2004. At the time, I was developing a semi-structured database called Spinneret, which was to be a sensical merging of the relational database concepts that I had utilized
... [More]
throughout my life and the native XML concept which I helped to pioneer. It would have featured dynamic storage and flexible data representation (JSON, XML, YAML, etc). Unfortunately, Spinneret was never to be, so this code sat around for quite some time before I decided that it should be released to the public.
So What Is It?Well, it's a library that does 'stuff' for you. When I stay 'stuff,' I mean that it performs a variety of tasks including collection management thread and signal abstraction, and specialized memory management.
Presently, Essential-C includes the following C routines: Collection Management Lists - I've taken a slightly different approach in my List management code. While many toolkit developers choose to implement List collections using singly or doubly linked lists, I've instead decided to implement something I call a Clustered List, where a doubly-linked set of nodes are managed, each node pointing to a cluster of many items. This improves random seek time because less walking has to occur, and it also means less calls to memory allocation routines when a lot of activity is occurring. There may be a formal name for this method, but I'm too lazy to look it up. Tables - Again, while some toolkit developers would opt to implement a very basic hash table where the entire set grows by a particular ratio every time its storage threshold is reached, I've decided to implement my Tables as in-memory Linear Hash tables. The benefit here is that the table will grow linearly rather than geometrically, thus avoiding the kind of memory consumption for which hash-tables have historically been notorious. Stacks and Queues - These are simple Stack and Queue set implementations based on the Clustered List routines. Memory Management Memory Chains - Because it was originally written to serve as the foundation for a database server, the memory management routines were written with transactions in mind, and in particular the ability for a developer to create a chain of memory that, upon completion of a particular transaction, can be removed in its entirety with a single API call. Reference Counting - The memory management routines also support Objective-C style retain and release reference counting, if one so desires to utilize it. Signal Abstraction - A simple way to register potentially many signal handlers for any particular signal. Thread Abstraction - Wraps the host operating system's threading APIs so that a developer can perform simple threading and synchronization without having to be familiar with any particular native API. And Much, MUCH More! Not really much more than that, but it's a starting point for bigger and better things. So long as those things remain focused and simple. [Less]
OmniThreadLibrary is a simple to use threading library for Delphi.
Fibranet implements a cooperative threading scheduler using Python generator functions.
Generator functions are wrapped in a Fibra class, which allows a thread to sleep, suspend and be killed. A Fibra can also branch into a real OS level thread if
... [More]
needed.
FibraNet is designed for use in multimedia applications which need to simulate concurrency, including games. [Less]
libnuggad is a C++ application development framework, primarily developed on Gentoo/Linux for GNU/Linux and hopefully other UNIX operating systems aswell.
Aboutpysage is a high-level message passing library with currency in mind. simple pythonic object-oriented API publisher/subscriber pattern built-in messages are distributed with efficient network transport using UDP centralized singleton manager
... [More]
class - objects registration, discovery, message propagation grouping - automatic threads management for partitioning receivers in groups
Installationpysage can be installed via setuptools:
easy_install pysageUsagefrom pysage import MessageReceiver, ObjectManager
from pysage.messaging import Message
mgr = ObjectManager.get_singleton()
class SecretMessage(Message):
properties = ['content']
class SecretReceiver(MessageReceiver):
subscriptions = ['SecretMessage']
def handle_SecretMessage(self, msg):
print 'the secret is %s' % msg.getProperty('content')
return True # stop propagation
def update(self, evt):
'''runs on every objectmanager.tick'''
pass
mgr.register_object(SecretReceiver(), 'secretreceiver')
mgr.queue_message(SecretMessage(content='big secret'))
mgr.tick() # prints "the secret is big secret"
mgr.trigger(SecretMessage(content='small secret')) # prints "the secret is small secret"
mgr.find('secretreceiver') # returns the receiver instancelook at Wiki for more.
Change Log1.2.5Added minimum_sleep to the threaded tick runner. This helps the OS to give control to better manage control between threads. Removed ez_setup from the directory structure Fixed the messageID generator already executing bug. Python generators are not thread safe. Added all to messaging module to prevent accidental importing Message class to override the system one 1.2.4Fixed threads timing issue by changing to a cross-platform timing function Changed so that child threads update at 30 milliseconds interval Changed unit tests to now use nosetests Added add_group method so that a group can be independently added, started Improved threading support to sleep 1 millisecond if time to process took longer than interval. To cooperate with other threads.
1.2.1Fixed so that child threads update in 30 milliseconds interval Changed code to use higher resolution timer on windows 1.2.0 Added grouping feature. Receivers in separate groups are in a separate thread using the same event queue, but their own update loop
LicensePysage itself uses MIT license.
However, if you need messaging across processes or network, pysage uses pyraknet and therefore Raknet for UDP network implementation. pyraknet uses the GNU Lesser General Public License.
RakNet is free to use for non-commercial use and purchasable for commercial use. It uses the Creative Commons Attribution - NonCommercial 2.5 license.
Future Plansthere are plans to enhance pysage to be able to partition objects (message listeners) to run across multiple processes, and possibly across networks. [Less]
AppStat is an improved version of Swaroop's Big Brother (http://www.swaroopch.com/blog/big-brother/).
Some of the implemented/planned features/improvements are.
ptimises the loss of time due to secondary processing (UI,I/O), giving more accurate
... [More]
results. dentifies the parent process of the current window in focus, thus correcting confusing output (for example, Big Brother would classify the Save As dialog of two different programs under one heading, thus not only providing useless data, but actually miscalculating the time spent on a particular program.). rovides a gui which lets the user set all the options manually. an perform a test run to calculate the best settings for the user's computer by running the program in different configurations and comparing the time lags. [Less]