# H2O

the optimized HTTP/1.x, HTTP/2 server

×
Powered by Oktavia

## Frequently Asked Questions

### What are the license terms?

H2O is licensed under the MIT license.
Portions of the software use following libraries that are also licensed under the MIT license: khash.h, PicoHTTPParser, libyaml.
Depending on how H2O is configured, the software links against OpenSSL or LibreSSL, both of which are dual-licensed under the OpenSSL License and the original SSLeay license.

### Are there any design documents?

Please refer to the main developer's presentation slides at the HTTP/2 conference, and his weblog.

### How do I use H2O as a library?

Aside from the standalone server, H2O can also be used as a software library. The name of the library is `libh2o`.

To build H2O as a library you will need to install the following dependencies:

- libuv version 1.0 or above
- OpenSSL version 1.0.2 or above1

In case the dependencies are installed under a non-standard path, `PKG_CONFIG_PATH` configuration variable can be used for specifying their paths. For example, the following snippet builds `libh2o` using the libraries installed in their respective paths.

    % PKG_CONFIG_PATH=/usr/local/libuv-1.4/lib/pkgconfig:/usr/local/openssl-1.0.2a/lib/pkgconfig cmake .
    % make libh2o

For more information, please refer to the GitHub issues tagged as libh2o.

### I have a problem. Where should I look for answers?

Please refer to the GitHub issues tagged as FAQ.

### Notes:

1. libh2o cannot be linked against the bundled LibreSSL; see issue #290