Coder Social home page Coder Social logo

ayouboss / libuhttpd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zhaojh329/libuhttpd

0.0 1.0 0.0 803 KB

A very flexible, lightweight and high performance HTTP server library based on libev and http-parser for Embedded Linux.

License: MIT License

CMake 4.66% C 94.80% Shell 0.10% Lua 0.44%

libuhttpd's Introduction

libuhttpd(中文)

license PRs Welcome Issue Welcome Release Version Build Status

A very flexible, lightweight and high performance HTTP server library based on libev and http-parser for Embedded Linux.

Features

  • Lightweight and high performance
  • Use libev as its event backend
  • Support HTTPS - OpenSSL, mbedtls and CyaSSl(wolfssl)
  • Support IPv6
  • Support CGI
  • Support plugin
  • Support upload large file
  • Support HTTP range requests
  • Support multi-process model - The same multi-process model as Nginx
  • Flexible - you can easily extend your application to have HTTP/HTTPS services
  • Code structure is concise and understandable, also suitable for learning

Dependencies

  • libev - A full-featured and high-performance event loop
  • http-parser - A high performance parser for HTTP messages written in C
  • mbedtls - If you choose mbedtls as your SSL backend
  • wolfssl - If you choose wolfssl as your SSL backend
  • openssl - If you choose openssl as your SSL backend

Benchmark

Nginx

$ wrk -t4 -c400 -d10s http://localhost:80/test.html
Running 10s test @ http://localhost:80/test.html
4 threads and 400 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
	Latency     3.54ms    7.32ms 224.58ms   93.30%
	Req/Sec    40.63k    12.49k   96.29k    74.50%
1622012 requests in 10.05s, 385.09MB read
Requests/sec: 161390.39
Transfer/sec:     38.32MB

libuhttpd

$ wrk -t4 -c400 -d10s http://localhost:8080/test.html
Running 10s test @ http://localhost:8080/test.html
4 threads and 400 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
	Latency     2.12ms    3.01ms  31.30ms   89.26%
	Req/Sec    70.87k    12.53k  142.54k    79.75%
2826394 requests in 10.05s, 547.18MB read
Requests/sec: 281328.83
Transfer/sec:     54.46MB

Build

~/libuhttpd/$ mkdir build && cd build
~/libuhttpd/build$ cmake ..
~/libuhttpd/build$ make

Run Example

Run

~/libuhttpd/build$ ./example/simple_server -v -a :8080

Then use the curl to test

$ curl 'http://127.0.0.1:8000/echo' -v

Install on OpenWrt

opkg update
opkg list | grep libuhttpd
opkg install libuhttpd-nossl

If the install command fails, you can compile it yourself.

Contributing

If you would like to help making libuhttpd better, see the CONTRIBUTING.md file.

libuhttpd's People

Contributors

edgar-bonet avatar ffontaine avatar minismb avatar neheb avatar zhaojh329 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.