summaryrefslogtreecommitdiff
path: root/README
blob: 66c6edc5af4b0a2d420b4228041cda5da593f89f (plain)
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
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 less than 25k (on x86).


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).  ARCH indicates that implementing this feature
may require non-trivial ARCHitectural changes in the code.  API
indicates that implementing the feature will require API changes.
TRIV indicates that implementing this feature should be TRIVial.  TEST
indicates that a testcase should be written before implementing the
feature.


For http/1.1-compliance:
========================
connection.c:
- support chunked requests from clients (#1260, ARCH, TEST)

For POST:
=========
- add support to decode multipart/form-data with 
  nesting (used for files) -- #1221, TEST

For SSL:
========
microhttpd.h:
- define appropriate MHD_OPTIONs (#1225, API)
- actual implementation (#1225, ARCH)

Missing Testcases:
==================
- add testcases for http/1.1 pipelining (need
  to figure out how to ensure curl pipelines)
- add testcases for resource limit enforcement

Documentation:
==============
- manual (texinfo, man)
- tutorial