NameDateSize

..10-Aug-201812 KiB

acinclude.m410-Aug-20181

aclocal.m410-Aug-201849.1 KiB

Android.mk10-Aug-20181.5 KiB

AUTHORS10-Aug-20182.1 KiB

ChangeLog10-Aug-201856 KiB

compile10-Aug-20187.2 KiB

config.guess10-Aug-201841.9 KiB

config.sub10-Aug-201835 KiB

configure10-Aug-2018561.7 KiB

configure.ac10-Aug-201830.6 KiB

contrib/10-Aug-20184 KiB

COPYING10-Aug-201826.1 KiB

depcomp10-Aug-201823 KiB

doc/10-Aug-20184 KiB

INSTALL10-Aug-201815.4 KiB

install-sh10-Aug-201813.7 KiB

libmicrohttpd.pc.in10-Aug-2018329

libmicrospdy.pc.in10-Aug-2018285

ltmain.sh10-Aug-2018277 KiB

m4/10-Aug-20184 KiB

Makefile.am10-Aug-2018594

Makefile.in10-Aug-201830 KiB

MHD_config.h10-Aug-201810.4 KiB

MHD_config.h.in10-Aug-20189.6 KiB

missing10-Aug-20186.7 KiB

MODULE_LICENSE_LGPL10-Aug-20180

NEWS10-Aug-201846

NOTICE10-Aug-201826.1 KiB

README10-Aug-20184.5 KiB

src/10-Aug-20184 KiB

test-driver10-Aug-20184.2 KiB

w32/10-Aug-20184 KiB

README

1About
2=====
3
4GNU libmicrohttpd is a GNU package offering a C library that provides
5a compact API and implementation of an HTTP 1.1 web server (HTTP 1.0
6is also supported).  GNU libmicrohttpd only implements the HTTP 1.1
7protocol.  The main application must still provide the application
8logic to generate the content.
9
10Additionally, a second, still very experimental library is provided
11for SPDY (the base for HTTP 2.0) support.  libmicrospdy provides a
12compact API and implementation of SPDY server. libmicrospdy currently
13only implements partially version 3 of SPDY.
14
15
16Installation
17============
18
19If you are using Subversion, run "autoreconf -fi" to create configure.
20
21In order to run the testcases, you need a recent version of libcurl.
22libcurl is not required if you just want to install the library.
23
24Especially for development, do use the MHD_USE_DEBUG option to get
25error messages.
26
27
28Requirements for libmicrospdy
29=============================
30
31The following packages are needed to build libmicrospdy:
32
33* zlib 
34* OpenSSL >= 1.0.1
35
36To run the test cases, involving requests, version of Spdylay, supporting
37SPDY v3, is required. Spdylay is still under development and can be
38found here:
39
40http://spdylay.sourceforge.net/
41
42
43Configure options
44=================
45
46
47If you are concerned about space, you should set "CFLAGS" to "-Os
48-fomit-frame-pointer" to have gcc generate tight code.
49
50You can use the following options to disable certain MHD features:
51
52--disable-https: no HTTPS / TLS / SSL support (significant reduction)
53--disable-messages: no error messages (they take space!)
54--disable-postprocessor: no MHD_PostProcessor API
55--disable-dauth: no digest authentication API
56--disable-epoll: no support for epoll, even on Linux
57
58The resulting binary should be about 30-40k depending on the platform.
59
60
61Portability
62===========
63
64The latest version of libmicrohttpd will try to avoid SIGPIPE on its
65sockets.  This should work on OS X, Linux and recent BSD systems (at
66least).  On other systems that may trigger a SIGPIPE on send/recv, the
67main application should install a signal handler to handle SIGPIPE.
68
69libmicrohttpd should work well on GNU/Linux, BSD, OS X, W32 and z/OS.
70Note that HTTPS is not supported on z/OS (yet).  We also have reports
71of users using it on vxWorks and Symbian.  Note that on platforms
72where the compiler does not support the "constructor" attribute, you
73must call "MHD_init" before using any MHD functions and "MHD_fini"
74after you are done using MHD.
75
76
77Development Status
78==================
79
80This is a beta release for libmicrohttpd.  Before declaring the
81library stable, we should implement support for HTTP "Upgrade" 
82requests and have testcases for the following features:
83
84- HTTP/1.1 pipelining (need to figure out how to ensure curl pipelines 
85  -- and it seems libcurl has issues with pipelining, 
86  see http://curl.haxx.se/mail/lib-2007-12/0248.html)
87- resource limit enforcement
88- client queuing early response, suppressing 100 CONTINUE
89- chunked encoding to validate handling of footers
90- more testing for SSL support
91- MHD basic and digest authentication
92
93In particular, the following functions are not covered by 'make check':
94- mhd_panic_std (daemon.c); special case (abort)
95- parse_options (daemon.c)
96- MHD_set_panic_func (daemon.c)
97- MHD_get_version (daemon.c)
98
99
100This is an early alpha release for libmicrospdy.  The following things
101should be implemented (in order of importance) before we can claim to
102be reasonably complete:
103- 8 different output queues (one for each priority) have to be implemented
104together with a suitable algorithm for utilizing them. Otherwise, downloading
105a file will block all responses with same or smaller priority
106- SPDY RST_STREAM sending on each possible error (DONE?)
107- SPDY_close_session
108- Find the best way for closing still opened stream (new call or existing)
109- SPDY_is_stream_opened
110- SPDY PING (used often by browsers)
111- receiving SPDY WINDOW_UPDATE
112- SPDY Settings
113- SPDY PUSH
114- SPDY HEADERS
115- SPDY Credentials
116
117Additional ideas for features include:
118- Individual callbacks for each session
119- Individual timeout for each session
120
121Unimplemented API functions of libmicrospdy:
122- SPDY_settings_create ();
123- SPDY_settings_add (...);
124- SPDY_settings_lookup (...);
125- SPDY_settings_iterate (...);
126- SPDY_settings_destroy (...);
127- SPDY_close_session(...);
128- SPDY_send_ping(...);
129- SPDY_send_settings (...);
130
131In particular, we should write tests for:
132- Enqueueing responses while considering request priorities.
133- HTTP methods other than GET
134
135
136
137
138
139Missing documentation:
140======================
141
142- libmicrospdy manual:
143  * missing entirely
144