README (2925B)
1 About 2 ===== 3 4 GNU libmicrohttpd2 is a GNU package offering a C library that provides 5 a compact API and implementation of an HTTP 1.1 web server (HTTP 1.0 6 is also supported). GNU libmicrohttpd2 only implements the HTTP(S) 7 protocol. The main application must still provide the application 8 logic to generate the content. 9 10 GNU libmicrohttpd2 is dual-licensed under the terms of the GNU Lesser 11 General Public License (LGPLv2.1+) or, alternatively, the GNU General 12 Public License (GPLv2+) with eCos 2.0 exception. You may use it under 13 either license. See COPYING for details. 14 15 16 Joining GNU 17 =========== 18 19 This is a GNU program, developed by the GNU Project and part of the 20 GNU Operating System. If you are the author of an awesome program and 21 want to join us in writing Free Software, please consider making it an 22 official GNU program and become a GNU maintainer. You can find 23 instructions on how to do so at https://www.gnu.org/help/evaluation. 24 We are looking forward to hacking with you! 25 26 27 Installation 28 ============ 29 30 See INSTALL for generic installation instructions. 31 32 If you are using Git, run "./bootstrap" to create configure. 33 34 In order to run the testcases, you need a recent version of libcurl. 35 libcurl is not required if you just want to install the library. 36 37 38 Configure options 39 ================= 40 41 If you are concerned about space, you should use configure option 42 --enable-build-type=release-compact to have a tight code. 43 44 You can use the following options to disable certain MHD features: 45 46 --disable-https: no HTTPS / TLS / SSL support (significant reduction) 47 --disable-messages: no error messages (they take space!) 48 --disable-postprocessor: no MHD_PostProcessor API 49 --disable-dauth: no digest authentication API 50 --disable-epoll: no support for epoll, even with Linux kernel 51 52 The resulting binary should be about XXk depending on the platform. 53 54 55 Portability 56 =========== 57 58 GNU libmicrohttpd2 is designed with portability in mind and is known to 59 work reliably on GNU/Linux, W32, FreeBSD, NetBSD, OpenBSD, Darwin (macOS), 60 Solaris/OpenIndiana and Haiku. It may also run without modification 61 (or with minimal adjustments) on other operating systems, including 62 GNU Hurd. 63 64 The library attempts to prevent SIGPIPE signals on its sockets. This 65 approach is known to be effective on GNU/Linux, macOS, and recent BSD 66 systems. However, on other platforms where socket operations (such as 67 send()) may trigger SIGPIPE, the application should explicitly install 68 its own signal handler for SIGPIPE. 69 70 71 Development Status 72 ================== 73 74 This is a alpha release of GNU libmicrohttpd2. Some important features 75 are not yet implemented, but a minimal working subset is available for 76 early testing and application code adaptation. 77 78 Please note that API-breaking changes may still occur until version 2.1 79 is released. After version 2.1 stabilizes, only backward-compatible API 80 changes will be introduced (with rare exceptions possible).