Framework for building Web APIs using asyncio
Project description
facture: async http api framework ===
[![image](https://img.shields.io/github/license/rbw/facture.svg?style=flat-square)](https://raw.githubusercontent.com/rbw/facture/master/LICENSE) [![image](https://img.shields.io/pypi/v/facture.svg?style=flat-square)](https://pypi.org/project/facture) [![image](https://img.shields.io/travis/rbw/facture.svg?style=flat-square)](https://travis-ci.org/rbw/facture) [![image](https://img.shields.io/codecov/c/github/rbw/facture.svg?style=flat-square)](https://codecov.io/gh/rbw/facture) [![image](https://img.shields.io/pypi/pyversions/facture.svg?style=flat-square)](https://pypi.org/project/facture/)
Facture provides developers with a sensible base structure and set of tools for building performant, lightweight and scalable HTTP API packages that can be easily deployed, combined - or shared with others.
Check out a demo of the Facture REST API browser over at [https://demo.facture.dev](https://demo.facture.dev).
It’s built on top of [aiohttp](https://github.com/aio-libs/aiohttp), is compatible with its plugin system, and uses the blazing fast [uvloop](https://github.com/MagicStack/uvloop) implementation of the asyncio event loop.
Features and limitations: - Delivers performance and concurrency - Scales horizontally - Comes with a REST API browser - Supports CORS and JWT out of the box - Has built-in support for [Postgres](https://www.postgresql.org) databases - Provides intuitive tools for object serialization - Created with [Docker](https://www.docker.com) and [Kubernetes](https://kubernetes.io) in mind - Works only with modern versions of Python (3.6+) - Event loop driven; code must be [asynchronous](https://docs.python.org/3/library/asyncio.html)
Getting started —
Read the documentation at [https://facture.rtfd.io](https://facture.rtfd.io), or check out the [jet-guestbook](https://github.com/rbw/jet-guestbook) example.
Development — While Facture does work, it’s currently under heavy development; Expect some breakage, as well as lacking documentation and tests. That being said - I would very much appreciate people testing out the software, and perhaps even contribute with code.
#### Tasks If you’re interested in helping out in any way, let me know by creating an Issue or contact me by email. Below are various tasks that needs completion in a first stable release.
##### Currently in progress - [ ] [Admin UI/OpenAPI](https://github.com/rbw/facture/projects/2#card-17017968) - [ ] [API documentation](https://github.com/rbw/facture/projects/2#card-17018073) - [ ] [Unit Tests](https://github.com/rbw/facture/projects/2#card-17018080)
##### Todo - [ ] [CORS support](https://github.com/rbw/facture/projects/2#card-17018027) - [ ] [GraphQL support](https://github.com/rbw/facture/projects/2#card-17018036) - [ ] [Users package](https://github.com/rbw/facture/projects/2#card-17018007) - [ ] [Authentication package](https://github.com/rbw/facture/projects/2#card-17018013) - [ ] [Project Wiki](https://github.com/rbw/facture/projects/2#card-17017985) - [ ] [Command-line interface](https://github.com/rbw/facture/projects/2#card-17017975) - [ ] [Modular core](https://github.com/rbw/facture/projects/2#card-18585354)
Author — Robert Wikman <rbw@vault13.org>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.