A curated list of awesome Sanic resources and extensions
Sanic is an Async Python 3.7+ web server that's written to go fast
- Sanic CRUD: CRUD REST API generation with peewee models.
- Sanic-GraphQL: GraphQL integration with Sanic
- Sanic-RestPlus: A port of Flask-RestPlus for Sanic. Full-featured REST API with SwaggerUI generation.
- Sanic-Transmute: A Sanic extension that generates APIs from python function and classes, and also generates Swagger UI/documentation automatically.
- Sanic-OpenAPI3e: A Sanic extension that allows you to decorate your routes and configure your OpenAPI spec v3.0 and swagger. Very high spec compliance, customisable.
- Sanic-JWT: Authentication extension for JSON Web Tokens (JWT).
- Sanic-JWT-Extended: Port of flask-jwt-extended, provides access/refresh token with fresh, easy custom claim insertion, and role-based access control
- Sanic-OAuth: OAuth Library with many provider and OAuth1/OAuth2 support.
- Sanic-Token-Auth: Simple token-based authentication.
- Sanic-HTTPAuth: Fork of Flask-HTTPAuth, provides Basic, Digest and Token HTTP authentication for Sanic routes
- asyncauth: A powerful, featureful, and simple authentication and authorization library for Sanic.
- SanicApiKey: Simple api key based authentication.
- Pytest-Sanic: A pytest plugin for Sanic. It helps you to test your code asynchronously.
- Sanic-OpenAPI: OpenAPI support, plus a Swagger UI.
- Sanic-Devtools: Dev tools for Sanic.
- sanja: This module aims to make bringing Jinja templates to Sanic easy.
- Jinja2-sanic: a jinja2 template renderer for Sanic.
- Sanic-Babel: Adds i18n/l10n support to Sanic applications with the help of the
- Sanic-CORS: A port of flask-cors.
- Sanic-Jinja2: Support for Jinja2 template.
- Sanic-Sass: Compile Sass & SCSS to CSS for Sanic.
- Sanic-Prometheus: Prometheus metrics for Sanic
- Prometheus-Sanic: Fork: dkruchinin/sanic-prometheus
- Sanic-Rollbar: Rollbar (exception reporting) integration for Sanic
- Sanic-Sentry: Sentry integration for Sanic.
- Sanic-Statsd: StatsD (currently only DataDog; WIP) metrics collection for Sanic
- GINO: A lightweight asynchronous ORM based on SQLAlchemy core, with asyncpg dialect and Sanic extension.
- Tortoise ORM: an easy-to-use asyncio orm like Django
- Sanic-Motor: Simple motor wrapper.
- Sanic-mongodb-extension: Extension for MongoDB with μMongo ODM support for Sanic framework
Requests and Responses
- Python-Sanicargs: Parse query args in Sanic using type annotations and a decorator.
- Sanic Brogz: Allows you to easily gzip Sanic responses. A port of Flask-Compress.
- Sanic Gzip: Add compression to your Sanic endpoints with a decorator
- Sanic-Limiter: Rate limiting for sanic.
- Sanic-UserAgent: Add
- Sanic-SSLify: Forces SSL on your Sanic app. A port of Flask-SSLify.
- TuSanic: TuSanic is a tus.io (simple resumable uploads) server-side implementation for sanic
- Sanic-redis-extension: Redis (via aioredis) support for Sanic framework
- Sanic-amqp-extension: AMQP support for Sanic framework
- Cookiecutter-Sanic: Get your sanic application up and running in a matter of second in a well defined project structure. Batteries included for deployment, unit testing, automated release management and changelog generation.
- Sanic Sessions: Session support for humans. Works with different backends Redis, Mongodb, memcache or an in memory store.
- Python-Paginate: Simple pagination support.
- Sanic-Dispatch: A dispatcher inspired by
DispatcherMiddlewarein werkzeug. Can act as a Sanic-to-WSGI adapter.
- Sanic-EnvConfig: Pull environment variables into your sanic config.
- sanic-sse: Server-Sent Events implementation for Sanic.
- Sanic-CamelCase-Middleware: Middleware for camelizing request and response bodies for sanic.
- Sanic-Pydantic: A library for parsing and validating http requests for sanic web-framework using pydantic library.
- sanic-dantic: a sanic request parameter check plugin based on pydantic. support FBV and CBV
- sanic-fire: An extension for Sanic that adds support for writing external commands to your application.
- SanicCRUD-vue: A example demo base Sanic with vueJS + webpack
- Sanic-Nginx-Docker-Example: Simple and easy to use example of Sanic behined nginx using docker-compose.
- Websocket PubSub Feed: A starting point for building a websocket-based pubsub feed with Redis
- Open Matchmaking Auth/Auth microservice: Authentication / Authorization microservice for Open Matchmaking platform
- Open Matchmaking Game servers pool microservice: Microservice for handling game servers pool
- Open Matchmaking Player statistics microservice: Storage for player statistics
- Sanic + Motor: A starting point for building Sanic application integrated with Motor Mongo DB
- Getting started with Sanic
- Super Fast Voice Broadcast with Asynchronous Python and Sanic
- Deploying an asynchronous Python microservice with Sanic and Zeit Now
- Part I — Getting started with the Sanic web framework: initial setup and https
- How to make your code fast and asynchronous with Python and Sanic
Videos and Podcasts
- Dougal Matthews - Async Web Apps with Sanic - EuroPython 2017
- Chris Hawkes - Python Sanic Tutorial
- Adam Hopkins, TalkPython - Episode #188: Async for the Pythonic web with Sanic
- Adam Hopkins, EuroPython 2020 - Overcoming access control in web APIs
- Adam Hopkins, PyConIL 2021 - Liberate your API: Building a task manager inside Sanic
Built with Sanic
Taken from The wiki
The following is a list of Sanic in production use.
- aioquiz - workshop registration and execution
- json-head: explained in Deploying an asynchronous Python microservice with Sanic and Zeit Now
- datasette - a tool for providing instant JSON API for your SQLite databases. More information here.
- devmap - Learning mindmaps
- NMT - Network Mapper Tool - A tool for mapping networks
- TuringNetwork - A NeuralNetwork Visualization tool built on/for PyTorch/ONNX
- exchangeratesapi.io - Exchange rates with currency conversion
- swagger-py-codegen - a Python web framework generator supports Sanic, Flask, Tornado, Falcon
- Simple-image-classifier - A microservice for image classification, based on tensorflow