/awesome-sanic

A curated list of awesome Sanic resources and extensions

Awesome Sanic Awesome

A curated list of awesome Sanic resources and extensions
Sanic is an Async Python 3.7+ web server that's written to go fast

Docs | Source | Forums

Contents

Extensions

API

  • 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.

Authentication

  • 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

  • sanic-security: A powerful, simple, and async security library for Sanic.

  • SanicApiKey: Simple api key based authentication.

  • Sanic-Auth: A tiny extension provide a decorator @auth.login_required, without Authentication algorithm & Session manage (sanic-session can work togather).

Development

Frontend

  • 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 Babel library
  • Sanic-CORS: A port of flask-cors.
  • Sanic-Jinja2: Support for Jinja2 template.
  • Sanic-Sass: Compile Sass & SCSS to CSS for Sanic.

Monitoring

ORM

  • 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

  • Webargs-Sanic: Sanic integration with Webargs. Parse & validate request arguments: headers, arguments, cookies, files, json, etc.
  • 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 user_agent to request
  • 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

Caching

Tracing

Queues

Scaffolding

  • 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.

Session

  • Sanic Sessions: Session support for humans. Works with different backends Redis, Mongodb, memcache or an in memory store.

Utils

  • Python-Paginate: Simple pagination support.
  • Sanic-Dispatch: A dispatcher inspired by DispatcherMiddleware in 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.

Resources

Examples

Tutorials

Videos and Podcasts

Built with Sanic

Taken from The wiki

The following is a list of Sanic in production use.