73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
# Sanic
|
|
|
|
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 | Implementation | 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/`
|
|
|
|
## Documentation
|
|
* [Getting started](docs/getting_started.md)
|
|
* [Routing](docs/routing.md)
|
|
* [Middleware](docs/routing.md)
|
|
* [Request Data](docs/request_data.md)
|
|
* [Exceptions](docs/exceptions.md)
|
|
* [Contributing](docs/contributing.md)
|
|
* [License](LICENSE)
|
|
|
|
## TODO:
|
|
* Streamed file processing
|
|
* File output
|
|
* Examples of integrations with 3rd-party modules
|
|
* RESTful router
|
|
* Blueprints?
|
|
|
|
## Final Thoughts:
|
|
|
|
▄▄▄▄▄
|
|
▀▀▀██████▄▄▄ _______________
|
|
▄▄▄▄▄ █████████▄ / \
|
|
▀▀▀▀█████▌ ▀▐▄ ▀▐█ | Gotta go fast! |
|
|
▀▀█████▄▄ ▀██████▄██ | _________________/
|
|
▀▄▄▄▄▄ ▀▀█▄▀█════█▀ |/
|
|
▀▀▀▄ ▀▀███ ▀ ▄▄
|
|
▄███▀▀██▄████████▄ ▄▀▀▀▀▀▀█▌
|
|
██▀▄▄▄██▀▄███▀ ▀▀████ ▄██
|
|
▄▀▀▀▄██▄▀▀▌████▒▒▒▒▒▒███ ▌▄▄▀
|
|
▌ ▐▀████▐███▒▒▒▒▒▐██▌
|
|
▀▄▄▄▄▀ ▀▀████▒▒▒▒▄██▀
|
|
▀▀█████████▀
|
|
▄▄██▀██████▀█
|
|
▄██▀ ▀▀▀ █
|
|
▄█ ▐▌
|
|
▄▄▄▄█▌ ▀█▄▄▄▄▀▀▄
|
|
▌ ▐ ▀▀▄▄▄▀
|
|
▀▀▄▄▀
|