aboutsummaryrefslogtreecommitdiff
path: root/README
blob: f9196907a0967ce32460a66491b7d4c1eb5a5f17 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
About
=====

libmicrohttpd is a library written in C that provides a compact
API and implementation of an HTTP 1.1 web server.  libmicrohttpd
only implements the HTTP 1.1 protocol.  The main application must
still provide the content.


Installation
============

If you are using Subversion, run "autoreconf -fi" to create configure.

In order to run the testcases, you need a recent version of libcurl.
libcurl is not required if you just want to install the library.


Configure options
=================

Especially for development, use "--enable-messages" to enable error
reporting (and use MHD_USE_DEBUG).  Error reporting is not enabled by
default to reduce the size of the library (error messages take
space!).  If you are concerned about space, you should set "CFLAGS" to
"-Os -fomit-frame-pointer" to have gcc generate tight code.  The
resulting binary should be about 25k (on x86).


Portability
===========

The latest version of libmicrohttpd will try to avoid SIGPIPE on its
sockets.  This should work on OS X, Linux and recent BSD systems (at
least).  On other systems that may trigger a SIGPIPE on send/recv, the
main application should install a signal handler to handle SIGPIPE.


Development Status
==================

This is a beta release.  Below we list things that should be
implemented (in order of importance) before we can claim to be
reasonably complete.  #XXXX refers to the respective Mantis bug report
(or feature request).



Missing features:
=================
- SSL support:
  * define appropriate MHD_OPTIONs (#1225)
  * actual implementation (#1225)


Untested features:
==================
- add testcases for http/1.1 pipelining (need
  to figure out how to ensure curl pipelines 
  -- and it seems libcurl has issues with pipelining, 
  see http://curl.haxx.se/mail/lib-2007-12/0248.html)
- add testcases for resource limit enforcement
- add testcases for client queuing early response,
  suppressing 100 CONTINUE
- extend testcase for chunked encoding to validate
  handling of footers


Missing documentation:
======================
- manual (texinfo, man)
- tutorial