JagPDF is a library for generating PDF documents in C/C++, Python, and Java. It supports TrueType (subsetting) and standard 14 Type 1 fonts, font metrics, Unicode, UTF-8 and common 8-bit character encodings, images (JPEG, PNG, or custom), paths, color spaces (RGB, CMYK, CIE based, ICC profiles, indexed), encryption, bookmarks, hyperlinks, and more.
Jigsaw is an embedded data-store designed for the development of data-warehouse, analytical, and machine learning applications. Jigsaw can perform over one million operations a second, and scale to store tera-bytes of data. The object library contains classes for representing ordered and unordered mappings, highly compressed bit vectors with a range of set theoretic operators, and directly integrates a high performance sort system.
Quality Objects (QuO) is a framework for providing quality of service (QoS) in network-centric distributed applications. These applications range from embedded applications to wide area network applications, including many military and commercial applications. QuO bridges the gap between the socket-level QoS being specified, researched, and provided by a number of organizations and the distributed object level where many distributed applications are best written. QuO adds QoS to CORBA and Java RMI in a manner which is appropriate for creating applications that can adapt to environments that are unpredictable or have strict resource constraints.
Sglib is a generic library for C that was inspired by the Standard Template Library from C++. It consists of a single header file and no binary code. It defines useful macros for sorting arrays and manipulating lists, sorted lists, double linked lists, hashed containers, and red-black trees. Macros are parametrized by the type of the data structure. The library does not enforce its own data representation, but acts on user-defined types. It does not enforce any particular memory management system.
There are many instances when one needs to process certain objects on seperate threads. But spawning a seperate thread per object may cause the system to crash. The Thread Pooling Framework can be used to process the the objects on a predefined number of threads. If all threads are busy, the objects are kept in the pool. Whenever a thread ends, an objects is taken from the pool and processed on a new thread. This continues until the pool is empty.