ULib is a highly optimized class framework for writing C++ applications. I wrote this framework as my tool for writing applications in various contexts. It is a result of many years of work as a C++ programmer. I think, in my opinion, that its strongest points are simplicity, efficiency, and sophisticated debugging. ULib is meant as a very lightweight C++ library to facilitate using C++ design patterns even for very deeply embedded applications, such as for systems using uclibc along with posix threading support. For this reason, ULib disables language features that consume memory or introduce runtime overhead, such as rtti and exception handling, and assumes one will mostly be linking applications with other pure C-based libraries rather than using the overhead of the standard C++ library and other similar class frameworks.
Features
- HTTP/1.0, 1.1 and HTTP/2 (h2spec compliant) protocols supported
- Persistent connections for HTTP/1.1 and Keep-Alive support for HTTP/1.0
- Browser cache management (headers: If-Modified-Since/Last-modified)
- Memory caching of document root for (small) static pages with smart (gzip-zopfli,brotli) compression and CSS/JS reduction
- Chunk-encoding transfers support
- HTTP multi-range request support
- Support for basic/digest authentication optionally based on url mask
- Support for directory listings via basic/digest authentication