Skip to content
/ sanic Public
forked from sanic-org/sanic

Async Python 3.5+ web server that's written to go fast

License

Notifications You must be signed in to change notification settings

yuan6785/sanic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
Jan 24, 2018
Mar 21, 2018
Mar 29, 2018
Mar 14, 2018
Mar 29, 2018
Feb 15, 2017
Oct 15, 2016
Aug 2, 2017
Mar 16, 2018
Oct 25, 2016
May 22, 2017
May 19, 2017
Aug 30, 2017
Oct 17, 2017
Jan 24, 2018
Jan 22, 2018
Dec 20, 2017
Jan 30, 2017
Mar 29, 2018
Sep 29, 2017
Feb 7, 2018
Feb 7, 2018
Mar 16, 2018

Repository files navigation

Sanic

Join the chat at https://gitter.im/sanic-python/Lobby Build Status PyPI PyPI version

Sanic is a Flask-like Python 3.5+ web server that's written to go fast. It's based on the work done by the amazing folks at magicstack, and was inspired by this article.

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.

Sanic is developed on GitHub. Contributions are welcome!

If you have a project that utilizes Sanic make sure to comment on the issue that we use to track those projects!

Hello World Example

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route('/')
async def test(request):
    return json({'hello': 'world'})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

Installation

  • pip install sanic

To install sanic without uvloop or ujson using bash, you can provide either or both of these environmental variables using any truthy string like 'y', 'yes', 't', 'true', 'on', '1' and setting the NO_X to true will stop that features installation.

  • SANIC_NO_UVLOOP=true SANIC_NO_UJSON=true pip install sanic

Documentation

Documentation on Readthedocs.

Examples

Non-Core examples. Examples of plugins and Sanic that are outside the scope of Sanic core.

Extensions. Sanic extensions created by the community.

Projects. Sanic in production use.

TODO

  • http2

Limitations

  • No wheels for uvloop and httptools on Windows :(

Final Thoughts

                 ▄▄▄▄▄
        ▀▀▀██████▄▄▄       _______________
      ▄▄▄▄▄  █████████▄  /                 \
     ▀▀▀▀█████▌ ▀▐▄ ▀▐█ |   Gotta go fast!  |
   ▀▀█████▄▄ ▀██████▄██ | _________________/
   ▀▄▄▄▄▄  ▀▀█▄▀█════█▀ |/
        ▀▀▀▄  ▀▀███ ▀       ▄▄
     ▄███▀▀██▄████████▄ ▄▀▀▀▀▀▀█▌
   ██▀▄▄▄██▀▄███▀ ▀▀████      ▄██
▄▀▀▀▄██▄▀▀▌████▒▒▒▒▒▒███     ▌▄▄▀
▌    ▐▀████▐███▒▒▒▒▒▐██▌
▀▄▄▄▄▀   ▀▀████▒▒▒▒▄██▀
          ▀▀█████████▀
        ▄▄██▀██████▀█
      ▄██▀     ▀▀▀  █
     ▄█             ▐▌
 ▄▄▄▄█▌              ▀█▄▄▄▄▀▀▄
▌     ▐                ▀▀▄▄▄▀
 ▀▀▄▄▀

About

Async Python 3.5+ web server that's written to go fast

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • Other 0.2%