On Thu, Oct 14, 2021 at 11:00 PM Robert Ramey via Boost < boost@lists.boost.org> wrote:
On 10/14/21 11:38 AM, Vinnie Falco via Boost wrote:
On Thu, Oct 14, 2021 at 11:35 AM Robert Ramey via Boost
wrote: Too me, all this argues for the usage of boost spirit as a url parser.
Never going to happen. I would never take a dependency on Spirit for anything network related or that will have security reviews. And users don't want this dependency either.
Hmmm - how about this idea. Create all your tests and examples first. Basically this will consist of a long list of urls - each one more elaborate and indecipherable then the last. Write the spirit parse to run in these tests. When you get all this working, write your "hand-rolled" parser (this will take a while) and test against the same list of urls and verify that that the parsing matches the spirit generated ones. Then you'll have 2 things:
a) verifiable, maintainable, confirmation that the test parsing is very correct b) test results which show that your hand rolled parser is either correct or difficult to prove otherwise.
I think maybe even better is to take some other implementations from other languages(if they exist), maybe C# or Rust have official/unofficial equivalents of Boost.URL so one could do a "diff" against them.