Files
deb-python-falcon/index.html
2013-05-16 14:46:10 -05:00

1 line
6.6 KiB
HTML

<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="description" content="Falcon is a really fast, light-weight framework for building cloud APIs. It tries to do as little as possible while remaining highly effective."><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="icon" type="image/x-icon" href="favicon.ico"><link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="css/styles.css" rel="stylesheet" type="text/css"><title> Falcon - The high-performance python WSGI framework </title></head><body><div class="forkme"><a href="https://github.com/racker/falcon" rel="me" target="_blank">Fork me on GitHub</a></div><div id="myCarousel" class="carousel slide"><div class="carousel-inner"><div class="active item"><div class="cover"><img src="img/falcon.png" class="pull-right"></div><div class="container"><div class="carousel-caption"><h1> Falcon </h1><p class="lead"> The high-performance cloud API framework. </p></div></div></div></div></div><div class="background-strip"></div><div id="nav" class="container marketing"><div class="row"><div class="span4"><img class="img-circle" data-src="holder.js/140x140"><h2> Design </h2><p> Light, Fast, and Flexible </p><p><a class="btn" href="#Features">View details »</a></p></div><div class="span4"><img class="img-circle" data-src="holder.js/140x140"><h2> Benefits </h2><p> Performance, Freedom and Reliability </p><p><a class="btn" href="#Benefits">View details »</a></p></div><div class="span4"><img class="img-circle" data-src="holder.js/140x140"><h2> Benchmarks </h2><p> Same Hardware, More Requests </p><p><a class="btn" href="#Metrics">View details »</a></p></div></div></div><div class="container marketing"><hr class="featurette-divider"><div class="featurette"><a id="Features"></a><img class="featurette-image pull-right" src=""><h2 class="featurette-heading"> Design </h2><p class="lead"><strong>Light.</strong> Only the essentials are included, with <em>six</em> the only dependency beyond the standard library. We work to keep the code lean, making Falcon easier to test, optimize, and deploy. </p><p class="lead"><strong>Fast.</strong> Cloud APIs need to turn around requests quickly, and make efficient use of hardware. Falcon processes requests several times faster than other popular web frameworks. </p><p class="lead"><strong>Flexible.</strong> Falcon can be deployed in a variety of ways, depending on your needs. The framework speaks WSGI, and works great with Python 2.6 and 2.7, PyPy, and Python 3.3. There's no tight coupling with any async framework, leaving you free to mix-and-match what you need for your web service. </p><p class="lead"><a href="https://github.com/racker/falcon/blob/master/README.md#install" alt='falcon web framework install'>Try the Falcon web framework</a>. </p></div><hr class="featurette-divider"><div class="featurette"><a id="Benefits"></a><img alt="" class="featurette-image pull-right" src=""><h2 class="featurette-heading"> Benefits </h2><p class="lead"><strong>Performance.</strong> Unlike other Python web frameworks, Falcon won't bottleneck your API's performance under highly concurrent workloads. Many frameworks max out at serving simple "hello world" requests at a few thousand req/sec, while Falcon can easily serve many more on the same hardware. </p><p class="lead"><strong>Freedom.</strong> Falcon isn't very opinionated. In other words, the framework leaves a lot of decisions and implementation details to you, the API developer, which means you will need to use your head a little more than other web frameworks, and probably write a little more code. On the other hand, this gives you a lot of freedom to <strong>customize and tune</strong> your implementation in order to create a solution that stands out from the crowd. </p><p class="lead"><strong>Reliability.</strong> Falcon doesn't include a lot of cruft that is simply unnecessary when building web services. Less code and fewer dependencies means a smaller attack surface, lower memory usage, and fewer places for bugs to hide. Our private Jenkins build fails at anything less than <strong>100% code coverage</strong>, and we use <a href="https://travis-ci.org/racker/falcon">Travis CI</a> to keep ourselves honest. </p><p class="lead"> If you're still not convinced, check out this <a href="http://www.thepartyanimal-blog.org/wp-content/uploads/2012/04/pancake_bunny.jpg" target="_blank" rel="nofollow">bunny</a> with a pancake on its head. </p><p class="lead"></p></div><hr class="featurette-divider"><div class="featurette"><a id="Metrics"></a><img class="featurette-image pull-right" src=""><h2 class="featurette-heading"> Benchmarks </h2><p class="lead"><strong>Scenario.</strong> The benchmark acts as a WSGI server and performs a GET request directly on each framework's app. Each app parses a route template with a single embedded parameter, reads a query parameter and a header from the request data, sets an x-header on the response, and finally returns a 10 KiB plain-text body, randomly generated. </p><p class="lead"><strong>Method.</strong> 200,000 iterations were executed per trial, and the best time was recorded for each framework over 5 trials. The order in which the frameworks were tested was randomized for each trial. Also, garbage collection was enabled as it would be in a production environment, and a full collection was forcefully triggered before each trial. Finally, results were calculated using the Decimal class, and rounded to the nearest whole number. </p><p class="lead"><strong>Platform.</strong> The benchmark was executed with Python 2.7.3, running under Mac OS X 10.8.3 on a Retina, 15-inch, early 2013 MBP (2.7 GHz Intel Core i7). </p><p class="lead"><strong>Results.</strong></p><table class="benchmarks"><tr><th> Framework </th><th> Performance </th><th> req/sec </th><th> μs/req </th></tr><tr class="highlight"><td> Falcon (0.1.5) with Cython (0.19) </td><td> 9x </td><td> 54,363 </td><td> 18 </td></tr><tr><td> Falcon (0.1.5) </td><td> 7x </td><td> 41,682 </td><td> 24 </td></tr><tr><td> Bottle (0.11.6) </td><td> 4x </td><td> 22,242 </td><td> 45 </td></tr><tr><td> Werkzeug (0.8.3) </td><td> 2x </td><td> 12,447 </td><td> 80 </td></tr><tr><td> Pecan (0.3.0) </td><td> 1x </td><td> 7,343 </td><td> 136 </td></tr><tr><td> Flask (0.9) </td><td> 1x </td><td> 6,146 </td><td> 163 </td></tr></table></div><hr class="featurette-divider"><footer><p class="pull-right"><a href="#">Back to top</a></p><p> © 2013 Rackspace Hosting. Falcon photo courtesy of <a href="https://commons.wikimedia.org/wiki/File:Brown-Falcon,-Vic,-3.1.2008.jpg">John O'Neill</a>. </p></footer></div></body></html>