Immutable Collections for Java is a library providing immutable/persistent collection classes for Java. While collections are immutable, they provide methods for adding and removing values by creating new modified copies of themselves. Each copy shares almost all of its structure with other copies, to minimize memory consumption. The library includes a singly-linked (cons/cddr style) list/stack, an integer tree-based indexed list, a 2-3 tree-based random access indexed list, a 2-3 tree-based map, a hash tree-based map, and hash- and tree-based sets. All collections provide immutable Cursor as well as standard Iterator classes for looping through all elements. A utility class provides functional style algorithmic processing of Cursors, including foldLeft, foldRight, collect, select, and reject. The 2-3 tree and integer tree classes are optimized for performance and can be used alongside java.util Collections when immutability is needed for safe data sharing.
sqlpp11 is an embedded domain-specific language which allows programming SQL very naturally in modern C++. It also enables the compiler to detect syntax errors, type errors, name errors, and even some semantic errors before they ever hit unit tests or production. Queries can be constructed at compile time or run time, offering varying levels of safety and flexibility.
Stencil is a templating language for Java that makes layouts and template reuse a simple task. With support for macros, functions, and advanced expressions it's a truly useful language with a simple and elegant syntax. It has an advanced API and is suitable for use in standalone and server environments.
Neatroff is a new implementation of the troff typesetting system. It extends the original troff with utf-8 text encoding support, named environments, long register and macro names, changing of text colors, arbitrary font ligatures and pairwise kerning, bidirectional text rendering, and keshideh line adjustment.
JS Diff Viewer is a library that can find and view the difference between two text strings. It takes two text strings, uses the diff algorithm to find the differences between them, and returns a list of changes to patch the original string to become the final string. The patch list shows which characters are added or removed to change one string into the other. The difference between the text strings may be computed in three modes: by character, by word or by line. The object can also format the strings to view them as HTML, showing which characters are added and removed with special insertion and deleted styles. The example page works as a tool to interactively view the changes as the user changes the texts before and after the changes are applied.