FastFlow is a pattern-based programming framework targeting streaming applications. It implements pipeline, farm, divide and conquer, and their composition, as well as generic streaming networks. It is specifically designed to support the development and the seamless porting of existing applications on multi-core. The layered template-based C++ design ensures flexibility and extendibility. Its lock-free/fence-free run-time support minimizes cache invalidation traffic and enforces the development of high-performance (high-throughput, low-latency) scalable applications. It has been proven faster than TBB, OpenMP, and Cilk on several micro-benchmarcks and real-world applications, especially when dealing with fine-grained parallelism and high-throughput applications.
XmlPlus xsd2cpp is a tool that compiles an XML schema into C++ data bindings. When invoked on an input XSD file, it generates the C++ sources (implementation/headers) for the supplied XML schema, a main.cpp template to demonstrate how generated sources can be consumed, and the automake/autoconf files for building the generated source.
Elemental is a C++ framework for distributed-memory dense linear algebra that strives to be fast, portable, and programmable. It can be thought of as a generalization of PLAPACK to element-by-element distributions that also makes use of recent algorithmic advances from the FLAME project. Elemental usually outperforms both PLAPACK and ScaLAPACK, however, it heavily relies on MPI collectives so a good MPI implementation is crucial. Both pure MPI and hybrid OpenMP-MPI configurations are supported.
SupplyChain is a C++ library that simulates a supply chain. It takes full advantage of concurrent programming and multi-core CPUs without the programmer having to know anything about it. A supply chain consists of two mandatory components: initial producers and final consumers. Apart from these components, a supply chain can include any number of manufacturer nodes. Each node can contain any number of elements of its own type. These elements allow very powerful supply chains to be modeled and constructed.
The JsonMe++ (JSON Made easy for C++) library is a C++ wrapper for the JSON-Glib C library. The library makes heavy use of C++ syntactic sugar type C++ language constructs, most notably the subscript operator and cast operator as essential API components, which makes this JSON library extremely simple to use. As a result, access to a deeply nested value from a piece of JSON data can be expressed simply.
The Hummus PDF Writer library allows you to generate PDF files. It was developed with a principal “one-off” method of generating PDF files. Adhering to this idea, it is both fast and retains a low memory signature regardless of how large the file grows. The library has a set of high level features for adding content to a PDF, including creation of pages; drawing primitives and any of the simple PDF operators for drawing content; embedding of PDF, JPEG, and TIFF images; Unicode text support with Type1, TrueType, and OpenType fonts; and defining reusable objects using XObject Forms. You can also use the library as a PDF parser. The library is very extensible. It is easy to implement more PDF features by using the lower level set of methods, which provide access to the PDF building blocks themselves. Adding a feature requires you to be familiar with the PDF formatting of that feature, but will not require you to write the basic PDF building blocks, as the library handles this.
libtld is a library used to extract the TLD from a URI and to check email validity. This allows you to extract the exact domain name, sub-domains, and all the TLD (top level, second level, third level, etc.). The problem with TLDs is that you cannot know where the domain starts. Some domains can use one top-level domain, others use two, etc. However, it may be useful to know where the domain is to have the exact list of sub-domains. For example, if you want to force www. at the start of the domain name if no other sub-domains are specified, then you need to know exactly how many TLD are defined in a URI. The libtld offers one main function: tld(), which gives you a way to extract the TLD from any URI. The result is the offset where the TLD starts. This gives you enough information to extract everything else you need. For emails, the library is capable of parsing a string that represents a list of email addresses to be verified. The verification includes a check of the domain name and its TLD.
libLunchbox facilitates the development and deployment of multi-threaded applications. It provides OS Abstraction, using utility classes abstracting common operating system features (such as threads, locks, memory maps, shared library loading, and condition variables), high-performance primitives (including thread-safe utilities tuned for performance, such as atomic variables, spin locks, and lock-free containers), and utility classes (including helper primitives which are not in the standard library, such as logging, pools, and random number generation).