From: Jeroen H. <vex...@gm...> - 2010-05-28 12:03:44
|
On 28 May 2010 12:28, Mark Wright <mar...@in...> wrote: >> > Mark wrote: >> > I think it would be really great if cpp-netlib had more support for >> > XML REST web server and clients, and smtp client, so I vote for: >> > >> > * web framework >> > * more message algorithms (transforms, renderers) >> > * smtp client >> > >> > cpp-netlib REST XML clients and servers that are interopable with >> > C# WCF REST clients and servers would be really neat. Then it >> > would be interesting to run some benchmark tests to see how >> > C++ netlib XML REST clients and servers perform vs C# clients >> > and servers. Some obvious ideas for the XML parsing is to use >> > Rapid XML: >> > >> > http://rapidxml.sourceforge.net/manual.html#namespacerapidxml_1performance > >> Glyn wrote: >> XML parsing is something that's going to crop up over again. For the XMPP >> client, I intend to write some simple backends around third party libs such >> as expat and libxml2 (not rapidxml as it's not an incremental parser). >> Rapid XML could still be useful for other parts. In any case, in the >> absence of Boost.Xml we'd have to make a lot of decisions about this >> ourselves so we don't end up writing our own XML library. > >> Thank you too for your input. You've obviously given some thought to this, >> is it possible that you could contribute? > > Hi Glyn, Dean and everyone, > > Yes :-) Obviously I am particulary interested in REST XML stuff. > For that I was wondering if (just some obvious ideas you have probably > already thought of): > > - the half async part could read in the entire XML message, hopefully > just using the HTTP message length to know when it has all of the message > (I'm not really sure if that will work or not) > - then pass it to a thread in a thread pool (the sync half), that then > parses the XML with an XML parser. > - Dean suggested earlier: "URI pattern-based dispatch (ala Rails, or > Django/Tornado)" that could call the appropriate handler method (in > the same thread that has already parsed the XML). > > Rapid XML seems appealing for little benchmarks vs C# WCF. > >> Dean wrote: >> REST-full web services can definitely be already implemented with the >> HTTP server template. Are you looking for an example on how to do >> this? > > An an example or framework or guidance on how go about writing some > stuff for this would be neat. > >> A framework wouldn't be very hard to implement, but will depend >> largely on conventions that most web services already need -- URI >> handling/routing, request parsing, REST method dispatch, etc. I'll >> look into writing up a simple example and then allowing others to >> extend into a full framework. I can be involved in that process too >> and it would be interesting to see where that goes. > > That's neat, thanks, I can help. > >> As far as XML is concerned, it might be outside the scope of the library. >> [snip links] > >> Thanks very much for the links, I've read pretty much all of these before. :) > > I guess I kind of expected you would have :-) > >> > >> > Thanks very much, >> > > >> Thank you very much too, I'll look into implementing the web framework >> parts in an example first and let others pick up if they find it >> interesting to work on too. I'll schedule that in the 0.8 release and >> focus on the HTTP parts for 0.7. > >> Have a great day and I hope this helps! > > Great, thanks, have a great day. > > Thanks, Mark > It might be an idea to support boost::property_tree, the XML backend is based on rapidxml but unfortunately lacking in documentation. Jeroen |