From: Jeroen H. <vex...@gm...> - 2010-02-11 22:26:32
|
On Thu, Feb 11, 2010 at 17:59, Dean Michael Berris <mik...@gm...> wrote: > On Fri, Feb 12, 2010 at 12:35 AM, Glyn Matthews <gly...@gm...> wrote: >> Hi Dean, >> >> On 11 February 2010 15:25, Dean Michael Berris <mik...@gm...> >> wrote: >>> >>> * MIME Parser (Marshall Clow has a cool one worthy of more attention >>> and discussion, hopefully he merges it into cpp-netlib in time for >>> BoostCon 2010 ;) ). >> >> Where can I get this? Does Marshall intend to merge his work into cpp-netlib >> or submit it directly to boost? >> > > Marshall and I have been conversing off-list and I have copies of his > work in my inbox. I haven't gotten the time to really integrate it > into cpp-netlib but he does have a github account now. I'm not sure if > he's on the list yet (I can check) but he has expressed interest in > merging his implementation into cpp-netlib for eventual submission to > Boost. > > We'll be working together to merge his library into cpp-netlib and > maybe do a joint presentation on BoostCon 2010. I see that he's done > cool stuff with his MIME encoder/decoder and I do look forward to > seeing his implementation in cpp-netlib sooner than later. > > Marshall, if you're on the list this is your cue. :D Great! >>> >>> * Form encoding/decoding (for HTTP clients/servers to handle HTML >>> form encoded data) >> >> Yes, something in namespace `boost::network::http::forms` ? >> > > That's still up for grabs. If you'd like to take a crack at it please > be my guest. :D > > I'm thinking initially it would be cool to have it in > `boost::network::http::utils` and glob together the different utility > functions/types there. I'm also thinking of a higher level utils > namespace like `boost::network::utils::html::forms`. > > Maybe one day we'll also have an HTML/XML DSEL that compiles to wicked > fast rendering code for those serious with using cpp-netlib's > embeddable HTTP server as an application server. Now *that* I think > personally would be cool, but I'm afraid is a little out of the scope > of cpp-netlib. :D > >>> >>> * Query string encoding/decoding (for GET queries) >> >> This has been proposed before, but I don't think it's ever been >> implemented. >> > > Yeah, I think Jeroen has a more concrete idea on how to do it. :) I've decided to try to take this on, and moved it up on my TODO list, as shown by the number of requests it's just something we need! As this is mostly Boost.Spirit work, it'll be something done incrementally (using Spirit seems to come down to writing a bit of code, giving compiling it a shot, figuring out what character you've misplaced this time, rinse and repeat :)). Initially the simple query strings as found in GET requests seem to be a nice goal, which if set up generically enough should later allow them to be extended to POST requests. The design and location of this is going to need some though, and any input is welcome. Do we want to integrate it into the URI parser and classes, in a separate namespace or as a 'utility' if such a category is going to exist? >>> * Base64 stream/string encoding/decoding (for Binary data) >> >> Boost.Serialization already defines base64 encoding/decoding functions, and >> I would guess that the MIME implementation you mentioned above would too. > > Yeah, I tought about that a little more and I think just base64 > encoding would be too low-level. The MIME implementation and > Boost.Serialization would be good places to see it. We can safely > remove that from the list. :) Yeah, I agree. >>> >>> * URI pattern-based dispatch (ala Rails, or Django/Tornado) >> >> Cool. >> > > Cool indeed. :) > >> >> Can you add them to the issue tracker, and maybe also to the wiki? This >> way, anyone who is interested in participating can find something to do. > > Wiki it is, I shall do a "brain dump" on the cpp-netlib.github.com wiki then. :D > > Thanks for the response Glyn! > > -- > Dean Michael Berris > cplusplus-soup.com | twitter.com/deanberris > linkedin.com/in/mikhailberis | facebook.com/dean.berris | deanberris.com > Jeroen |