Projects / libjc


libjc is a framework for event-driven development in C. Programs that use it can perform an arbitrary number of operations simultaneously and in the background, and later wait for some or all of them to complete. The source package includes the core library along with a few objects, each of which is able to perform a set of related operations. This framework consumes significantly less memory than standard libraries, and it scales well to multiprocessor systems.

Operating Systems

Recent releases

  •  12 May 2011 21:52

    Release Notes: The X11 client now tries to enable the "BIG-REQUESTS" extension after the connection is established if this extension is supported by the server, and updates the maximum allowed request length accordingly. The configuration library has a new API for loading configuration, which is much more flexible than the old jc_config_load() function. A few other additions and bug fixes were also made.

    •  05 May 2011 21:45

      Release Notes: The X11 client now supports SEND_EVENT requests. The configuration library can parse command line arguments. A clone of the xev program was added to test and demonstrate usage of the X11 client. Other test programs were also added. This release also adds a "getting started" document, which explains how to get started using libjc in applications. Bugs were also fixed and other minor improvements were made.

      •  28 Apr 2011 21:02

        Release Notes: The semantics of jc_wait() were changed, and it is now much easier and straightforward to use objects from user programs. All tests have been updated to use the new interface. Functions that manage allocation of resource IDs were added to the X11 client. The configuration library now returns a descriptive error message in case of an error, instead of an error number. A few simple test programs for the X11 client were also added, and several performance improvements and bugfixes were made.

        •  22 Apr 2011 03:03

          Release Notes: The llpoll library was re-implemented, and a document was added to describe its usage. The number of scheduler threads can now be set at runtime with a configuration parameter. The X11 client now uses a fixed-size buffer to read server messages. The size of this buffer can be configured at runtime as well. MAPPING_NOTIFY events are now sent to all windows that were registered with jc_x11_window_add(). All X11 core protocol constants are now defined in proto/x11.h. A document was added on the X11 client. Bugs were also fixed and several functions were added to some of the libraries.

          •  14 Apr 2011 20:45

            Release Notes: This release adds an almost-complete X11 protocol library and an asynchronous X11 client. Only core protocol messages are currently supported; support for some standard X11 extensions may be added in the future. In addition, a bug in the core library was fixed, several functions were added, and some additions were made to the configuration library.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.