Snorkel is a light weight multi-threaded embedded web server API written in C. It is distributed as a runtime library for UNIX-like and Windows platforms. It was designed to provide C/C++ developers with an easy way to add web-interfaces to natively built applications. Currently, Snorkel is free software distributed under BSD License. The library uses a specialized memory manager to achieve thread-locality and semi lock-free processing for parallelism and performance on multi-core systems. Snorkel is about 200KB (version 1.0.4) on Windows and Linux. It was written and is currently maintained by Walter E. Capers. Features * Light weight and fast * Has cross platform support (Unix-like and Windows platforms) * Plugin support (uses a framework known as bubbles) * Supports protocol-stacking (Using Snorkels protocol development API servers can be programmed to process multiple user defined protocols over a single port) * and support * Implements a subset of Server-Side Includes (SSI) * Supports Secure Socket Layer protocol * Simple error logging * Directory password-protection * Directory listing * Supports GET and POST methods * Caching support * Supports URI overloading (URIs can be overloaded with C functions to provide dynamic web content) * Supports MIME overloading (MIME types can be assigned to C functions to provide dynamic web content) * MIMEs and URIs can be overloaded with content buffers * Supports IP filtering * Supports all client side functionalities * Zero-copy support for large files * Supports keep-alive