Any plan to remove all boost dependencies

Aug 1, 2015 at 6:34 PM
Hi guys,

is removing boost (i.e. using pure C++ 11 asio, for instance) planned?

Cheers
Aug 3, 2015 at 3:23 PM
Edited Aug 3, 2015 at 3:24 PM
Currently, Boost is only used on iOS and Android, which use Boost ASIO, right?
AFAIK, there's a version of ASIO which takes advantage of C++11 and doesn't have Boost dependencies:
https://think-async.com/Asio/AsioAndBoostAsio
I suspect the only reason REST SDK hasn't been switched to non-Boost ASIO is the lack of resources in Casablanca team...
Aug 3, 2015 at 7:24 PM
Boost is used on all platforms for websockets. If you don't want websockets (via CPPREST_EXCLUDE_WEBSOCKETS), it is used on OSX, iOS, Android, and Linux.

This does sound interesting. We don't really have the resources to investigate such a change right now, but removing dependencies is always great.

However, one other issue we've had in the past is the STL on iOS had bugs in its concurrency implementation. Switching to some of the Boost concurrency primitives fixed the issue. This just means we'd need to make sure all those bugs are no longer problems before removing Boost.

If someone in the community would like to attempt to do this, we'd be interested in accepting a contribution. It would be especially great to reduce dependencies when on the mobile platforms.

roschuma
Aug 3, 2015 at 9:31 PM
Edited Aug 3, 2015 at 9:31 PM
Boost is used on all platforms for websockets. If you don't want websockets (via CPPREST_EXCLUDE_WEBSOCKETS), it is used on OSX, iOS, Android, and Linux.
We are building our product, which uses REST SDK and websockets, on Windows and iOS (soon on Android). Windows definitely works without Boost!

Another problem with Boost use in Casablanca is that, as soon as you include almost any header, it pulls Boost dependency in. This means that it's insufficient to build Casablanca separately and just used its binaries, but we had to add all 10,000+ Boost files to source control only to be able to include Casablanca public headers...