libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

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).