This project aims to provide native implementation of HTTP/2, the second major version of the HTTP network protocol, for Julia language. This project will provide a RFC compliant implementation, which will consist of a multiple modules related to framing and application layers, as well as tests, examples of using in server and client modes, ALPN support and documentation.
Problem description
The Julia language has a family of packages, JuliaWebStack, that provide support of modern web technologies. Currently, the Julia language provides a support for HTTP protocol which is implemented as a wrapper around popular HTTP parser library implementation in C language, http-parser.
In order to keep up with new trends in web technologies, we propose to implement newly approved version of HTTP protocol, HTTP/2.
Libgit2 has support for the client side of the negotiation, but it’s missing server-side capabilities. We propose a framework that will support smart exchange protocol which attributes to the client state and needs and provide event triggering mechanism for customizable actions on the server side.