A simple HTTP/2 cleartext server made with C++. The purpose of this project is to help myself learn more about the web, its HTTP protocol, and review C++. I do not intend this to be production ready at all and this will take some time to get working.
- Only works on Unix-y systems because of the GNU Makefile.
- Create the bin and build folder at the project root for the build to work.
- Files in mains with names such as
test_*
are the unit tests.
Make special collections: BitArray, Prefix BTHPACK Huffman encoder & decoder.HPACK header indexing table (static, dynamic).HPACK string and integer encoder & decoder.- Make HPACK context class.
- Make unit tests with mock headers. See RFC 7541 5.2 for how the Huffman flag is put by the string length.
- Make HTTP/2 streams and other utils.
- Make
Http2Stream
. - Consider stream priority tree and algorithm...
- Make HTTP/2
FrameScanner
andFrameWriter
. - Make
Http2Connection
.
- Create server workers.
- Create server driver.
- Put together thread pool implementation.
- Finish up driver class of server.
- Test with cURL.
- Probably install and use the
s2n
SSL library because openssl is verbose.