Subject: [boost] Feedback on Boost.Http
From: VinÃcius dos Santos Oliveira (vini.ipsmaker_at_[hidden])
Date: 2015-04-18 18:20:50
I recently submitted an HTTP server library to Boost Incubator and I'd
I intend to submit to Boost later.
This is the library that I developed during GSoC 2014 and I made several
improvements (new features, bug fixes, better and extended
documentation...) after the end of GSoC. There are a few improvements that
I still want to do, but none of them would be a barrier for Boost
integration, in my opinion.
This library doesn't have a builtin request router, opposed to several
libraries out there, then you can use whatever routing style you wish
(tree-based, middleware-based, no router...).
Also, it follows Boost active style, then you can build your own scheduler
around it (prioritize requests from certain IPs, defer acceptance of new
connections during server high load, reuse prior constructed objects...).
The library follows Asio threading model, then you also choose whether you
will handle all requests from the same thread (useful for embedded devices)
or multiples ones. The library is fully async, then one thread is not a
It has a powerful and flexible file server API, supporting range-based
requests, conditional requests, support for ETags and so on.
After the GSoC, I had the chance to add tests for asynchronous abstractions
and now the implementation is much more trustable and stable. The choice to
reuse an existing HTTP parser (the Node.js's C parser) also helps a lot.
The simple message-based API helps to support HTTP pipelining, allocation
fine tuning and much more. Besides HTTP pipelining, HTTP chunking (and
other modern features like 100-continue and HTTP Upgrade) are also
There are zero reviews/comments on Boost Incubator right now and I'd love
to see more eyes on this lib that does better on many fronts than previous
Benchmark is one item that I still need to tackle, btw. But I hope to see
good results here too.
-- VinÃcius dos Santos Oliveira https://about.me/vinipsmaker
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk