Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/channelcat/sanic
Browse files Browse the repository at this point in the history
  • Loading branch information
channelcat committed Oct 9, 2016
2 parents f43578a + df71827 commit 8b1b69e
Showing 1 changed file with 35 additions and 2 deletions.
37 changes: 35 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
# Sanic

Python 3.5+ web server that's written to go fast
Sanic is a Flask-like Python 3.5+ web server that's written to go fast. It's based off the work done by the amazing folks at magicstack, and was inspired by this article: https://magic.io/blog/uvloop-blazing-fast-python-networking/.

On top of being flask-like, sanic supports async request handlers. This means you can use the new shiny async/await syntax from Python 3.5, making your code non-blocking and speedy.

## Benchmarks

All tests were run on a AWS medium instance running ubuntu, using 1 process. Each script delivered a small JSON response and was tested with wrk using 100 connections. Pypy was tested for falcon and flask, but did not speed up requests.

| Server | Requests/sec | Avg Latency |
| ---------------------------- | ------------:| -----------:|
| Sanic (Python 3.5 + uvloop) | 29,128 | 3.40ms |
| Falcon (gunicorn + meinheld) | 18,972 | 5.27ms |
| Flask (gunicorn + meinheld) | 4,988 | 20.08ms |
| Aiohttp (Python 3.5) | 2,187 | 56.60ms |

## Hello World

```
from sanic import Sanic
from sanic.response import json
app = Sanic(__name__)
@app.route("/")
async def test(request):
return json({ "hello": "world" })
app.run(host="0.0.0.0", port=8000)
```

## Installation
* `python -m pip install git+https://github.com/channelcat/sanic/`

## Final Thoughts:

▄▄▄▄▄
▀▀▀██████▄▄▄ _______________
Expand All @@ -20,4 +53,4 @@ Python 3.5+ web server that's written to go fast
▄█ ▐▌
▄▄▄▄█▌ ▀█▄▄▄▄▀▀▄
▌ ▐ ▀▀▄▄▄▀
▀▀▄▄▀
▀▀▄▄▀

0 comments on commit 8b1b69e

Please sign in to comment.