NanoHTTPD

NanoHttpd is an open-source, small-footprint web server that is suitable for embedding in applications, written in the Java programming language. The source code consists of a single .java file. It can be used as a library component in developing other software (such as measurement, science, and database applications) or as a standalone ad-hoc style HTTP daemon for serving files.

NanoHttpd is available in two "flavors" - one utilizing up-to-date Java features and one strictly conforming to Java 1.1. Due to independence from Java features beyond JDK 1.1, NanoHttpd is suited for embedded application development. NanoHttpd has been used to build, for example, Android software.

The original version, released in 2003, only included simple HTTP 1.0 features, but the software has since been extended to support some more advanced techniques such as HTTP 'keep-alive' connections, full REST style HTTP Methods, HTML5 video streaming or HTTP uploading through multipart extensions. Current version includes WebSocket and experimental HTTPS support.