<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 23, 2013 at 7:11 AM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This project (Falcon) is only about 4 months old. While it looks to be<br>

good solid code, it would be great if OpenStack projects could settle on<br>
a WSGI framework and everyone work towards the same end goal. By my<br>
count, to date OpenStack projects have used Bottle, Flask, Pecan, WSME,<br>
and custom-built frameworks.<br></blockquote><div><br></div><div style>FTR, WSME is just being used for (de)serialization, so it could theoretically be used with any of those other frameworks that handle the request dispatching.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Why don't we get this into Oslo and at least make an attempt at driving<br>
the car in the same direction? If the performance benefits of Falcon are<br>
as advertised, I would think the OpenStack dev community would be eager<br>
to create a simple Oslo wrapper around the Falcon library and start to<br>
standardize on a single framework for WSGI handling.<br></blockquote><div><br></div><div style>Those benchmarks look a little shallow. How does performance compare when dispatching to the number of routes in the example app? Does searching a long list of regexes scale in the same way as object-dispatch models?</div>
<div style><br></div><div style>What about development effort? How easy is it to add a new endpoint, or set of endpoints? It looks like Falcon is using regex based dispatching, similar to Flask. The problem we found with that in ceilometer is you can have "dead spots" in  your URL structure, where a URL is implied by a path but doesn't actually have a handler registered. For example, the benchmark app in the Falcon repo handles /hello/{account_id}/test, but does not say what to do for /hello or /hello/{account_id}. That mistake would be more obvious in an object-dispatch system.</div>
<div><br class="">The other aspect to consider is whether the framework includes the features we need. Does it do content-type handling? Does it handle unicode in URLs correctly? What about alternate message body encodings? How well does it handle mal-formed requests? Can it handle streaming serialized data in a response?</div>
<div><br></div><div>Correctly handling all of the WSGI spec while remaining interoperable with other WSGI tools is fairly complex. WebOb has a *lot* of existing use and testing. Are the request objects in Falcon as robust as WebOb?</div>
<div><br></div><div style>The fact that we have several production-ready options for a framework, Pecan or otherwise, make me wonder why we are spending time building another one.</div><div><br></div><div style>Doug</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Best,<br>
-jay<br>
<div class=""><div class="h5"><br>
On 04/23/2013 07:02 AM, Sandy Walsh wrote:<br>
> haha ... classic case of left hand not knowing what the right hand is doing.<br>
><br>
> Thanks!<br>
><br>
> -S<br>
> ________________________________________<br>
> From: Thierry Carrez [<a href="mailto:thierry@openstack.org">thierry@openstack.org</a>]<br>
> Sent: Tuesday, April 23, 2013 6:20 AM<br>
> To: <a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a><br>
> Subject: Re: [openstack-dev] Pecan vs Falcon?<br>
><br>
> Sandy Walsh wrote:<br>
>> Anyone had any experience with this? Specs are impressive.<br>
>><br>
>> <a href="http://falconframework.org/" target="_blank">http://falconframework.org/</a><br>
><br>
> Given that it is developed by Kurt Griffiths @ Rackspace, and used in<br>
> Marconi, I'm pretty sure he has a strong opinion on it :)<br>
><br>
> --<br>
> Thierry Carrez (ttx)<br>
> Release Manager, OpenStack<br>
><br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>