Blame README

Packit 875988
About
Packit 875988
=====
Packit 875988
Packit 875988
GNU libmicrohttpd is a GNU package offering a C library that provides
Packit 875988
a compact API and implementation of an HTTP 1.1 web server (HTTP 1.0
Packit 875988
is also supported).  GNU libmicrohttpd only implements the HTTP 1.1
Packit 875988
protocol.  The main application must still provide the application
Packit 875988
logic to generate the content.
Packit 875988
Packit 875988
GNU libmicrohttpd is dual-licensed under the GNU Lesser General Public
Packit 875988
License (LGPLv3+) and the eCos License.  See COPYING for details.
Packit 875988
Packit 875988
Packit 875988
Installation
Packit 875988
============
Packit 875988
Packit 875988
See INSTALL for generic installation instructions.
Packit 875988
Packit 875988
If you are using Git, run "autoreconf -fi" to create configure.
Packit 875988
Packit 875988
In order to run the testcases, you need a recent version of libcurl.
Packit 875988
libcurl is not required if you just want to install the library.
Packit 875988
Packit 875988
Especially for development, do use the MHD_USE_ERROR_LOG option to get
Packit 875988
error messages.
Packit 875988
Packit 875988
Packit 875988
Configure options
Packit 875988
=================
Packit 875988
Packit 875988
Packit 875988
If you are concerned about space, you should set "CFLAGS" to "-Os
Packit 875988
-fomit-frame-pointer" to have gcc generate tight code.
Packit 875988
Packit 875988
You can use the following options to disable certain MHD features:
Packit 875988
Packit 875988
--disable-https: no HTTPS / TLS / SSL support (significant reduction)
Packit 875988
--disable-messages: no error messages (they take space!)
Packit 875988
--disable-postprocessor: no MHD_PostProcessor API
Packit 875988
--disable-dauth: no digest authentication API
Packit 875988
--disable-epoll: no support for epoll, even on Linux
Packit 875988
Packit 875988
The resulting binary should be about 30-40k depending on the platform.
Packit 875988
Packit 875988
Packit 875988
Portability
Packit 875988
===========
Packit 875988
Packit 875988
The latest version of libmicrohttpd will try to avoid SIGPIPE on its
Packit 875988
sockets.  This should work on OS X, Linux and recent BSD systems (at
Packit 875988
least).  On other systems that may trigger a SIGPIPE on send/recv, the
Packit 875988
main application should install a signal handler to handle SIGPIPE.
Packit 875988
Packit 875988
libmicrohttpd should work well on GNU/Linux, W32, FreeBSD, Darwin,
Packit 875988
NetBSD, OpenBSD, Solaris/OpenIndiana, and z/OS.
Packit 875988
Note that HTTPS is not supported on z/OS (yet).  We also have reports
Packit 875988
of users using it on vxWorks.
Packit 875988
Packit 875988
Packit 875988
Development Status
Packit 875988
==================
Packit 875988
Packit 875988
This is a beta release for libmicrohttpd.  Before declaring the
Packit 875988
library stable, we should have testcases for the following features:
Packit 875988
Packit 875988
- HTTP/1.1 pipelining (need to figure out how to ensure curl pipelines 
Packit 875988
  -- and it seems libcurl has issues with pipelining, 
Packit 875988
  see http://curl.haxx.se/mail/lib-2007-12/0248.html)
Packit 875988
- resource limit enforcement
Packit 875988
- client queuing early response, suppressing 100 CONTINUE
Packit 875988
- chunked encoding to validate handling of footers
Packit 875988
- more testing for SSL support
Packit 875988
- MHD basic and digest authentication
Packit 875988
Packit 875988
In particular, the following functions are not covered by 'make check':
Packit 875988
- mhd_panic_std (daemon.c); special case (abort)
Packit 875988
- parse_options (daemon.c)
Packit 875988
- MHD_set_panic_func (daemon.c)
Packit 875988
- MHD_get_version (daemon.c)