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.
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.
PGJDBC-NG is an implementation of JDBC for the PostgreSQL server. It aims to support the complete JDBC 4.1. Specifically, it supports the advanced UDT features of JDBC that the mainstream driver lacks. It's implemented using an asynchronous I/O library (Netty), which allows it to support other advanced features like asynchronous notifications.
NanoHttpd is a lightweight HTTP server designed for embedding in other applications. It's only one Java file, in two "flavors", one strictly Java 1.1 compatible, and one at "current" standards. It supports GET, POST, PUT, HEAD and DELETE requests, and supports file uploading with very small memory overhead. Temp file usage and the threading model are easily customized.
QuickFind is a cross-platform Java application for searching files in your computer. Its sole purpose is to save user time by searching the desired file almost instantly. It is designed to support all of the major computer platforms. The user can schedule caching or manually cache at any time on selected directories. Once the caching is done, all you have to do is input the name of the file you want to find.