On 21/01/2020 16:43, Vinnie Falco wrote:
Is there any interest in a URL library for Boost? This is something that has been requested for a while now, and I've finally gotten around to it.
I'm quite interested. Though some docs would be nice. ;)
For servers, execution paths are provided to avoid all dynamic allocation. For example to retrieve the decoded username: url::static_pool<4000> sp; std::cout << u.username( sp.allocator() );
Repeated reinventing of static allocators gives me some pause. Maybe that should be broken out into a separate library first? And maybe recently-accepted FixedString could use it too (or you could use theirs)?
The library is here:
Glancing at https://github.com/vinniefalco/url/blob/develop/include/boost/url/impl/basic..., it looks like there's quite a bit of duplicate code (eg. between set_password and set_encoded_password). I assume this is related to the desire to avoid allocation, but perhaps you could make use of your own static_pool when delegating common subtasks, rather than duplicating the logic? (Side note: I find the "wrap at <40 columns" style harder to read. Who has screens that narrow these days?)