Now that we've removed the need for boost::optional in #312, the only remaining dependency we badly need is asio for queries to routing engines.
Currently we use the version of asio that is package within boost because it was already a dependency anyway and also the error catching relies on boost::system::error_code. Based on https://think-async.com/Asio/AsioStandalone.html and the second comment of this SO thread, it sounds like we could definitely drop boost and simply introduce a dependency to asio.
The biggest benefit would be to remove the need to pull all the boost stuff to setup a new box (only install libasio-dev under debian/ubuntu). This would probably speed-up CI builds and might help with Docker image sizes (VROOM-Project/vroom-docker#4).
Potential downsides:
Now that we've removed the need for
boost::optionalin #312, the only remaining dependency we badly need is asio for queries to routing engines.Currently we use the version of asio that is package within boost because it was already a dependency anyway and also the error catching relies on
boost::system::error_code. Based on https://think-async.com/Asio/AsioStandalone.html and the second comment of this SO thread, it sounds like we could definitely drop boost and simply introduce a dependency to asio.The biggest benefit would be to remove the need to pull all the boost stuff to setup a new box (only install
libasio-devunder debian/ubuntu). This would probably speed-up CI builds and might help with Docker image sizes (VROOM-Project/vroom-docker#4).Potential downsides:
libasio-devmanually whereas most dev people already have boost availablerequires some work on compilation and https://github.com/VROOM-Project/vroom/blob/master/src/routing/http_wrapper.cpp to strip outboost::system::error_codestuff