Git Product home page Git Product logo

h2o's Introduction

H2O - an optimized HTTP server / library implementation

H2O is an optimized HTTP server implementation that can be used either as a standalone server or a library.

Supported Protocols

  • HTTP/1.0 (http and https)
  • HTTP/1.1 (http and https)
  • Websocket (RFC6455, both ws and wss)
  • HTTP/2.0 (draft 14, via Upgrade, NPN, ALPN)

Dependencies

  • OpenSSL (mandatory)
  • libyaml (optional; required when building the server)
  • libuv 1.0.0 (optional; required when using h2o as a library)
  • wslay (optional; required if you need support for websocket)

Building and Running the Server

Run the commands below to build and run the H2O server. The last command will read the configuration from examples/h2o.conf and start listening on port 8080. Try accessing http://127.0.0.1:8080/.

$ git submodule update --init --recursive
$ cmake .
$ make h2o
$ ./h2o -c examples/h2o.conf

Use --help to print the list of configuration directives available.

$ ./h2o --help

Building the Library

$ git submodule update --init --recursive
$ cmake .
$ make libh2o

The library is designed to work together with the upcoming libuv version 1.0.0. Examples can be found within the examples/ directory.

Benchmarks

HTTP/1.1

Server \ size of content 6 bytes 4,096 bytes
nginx/1.7.4 (conf) 45,866 47,579
H2O @ eef1612 73,800 63,768

note: wrk -c 500 -d 30 -t 1 on Ubuntu 14.04 on VMWare Fusion

HTTP/2

Server \ size of content 6 bytes 4,096 bytes
nghttpd @ a9b7426 65,725 34,121
trusterd @ 962d031 125,482 50,103
H2O @ 7505a82 201,077 90,810

note: h2load -c 500 -m 100 -n 2000000 on Ubuntu 14.04 on VMWare Fusion

h2o's People

Contributors

kazuho avatar kimoto avatar swinghu avatar syohex avatar tatsuhiro-t avatar

Watchers

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