This is the developer documentation of the Faraday server. If you are a user instead, you should go to the Faraday Wiki at GitHub.
We are using the following Python libraries to keep our server running:
A minimalistic web framework for Python with a great (but a bit messy) ecosystem.
A really powerful but complex Object Relational Mapper for Python that allows us to map results of SQL queries to instances of Python objects. Sometimes it looks made by Java developers rather than Python devs.
A pretty simple library to create RESTful API endpoints inside a class defining one or many routes related to that endpoint. Is takes the idea of Flask Pluggable Views.
The library is a fork of Flask-Classy, a library that stopped being maintained 4 years ago.
Framework-agnostic serialization and deserialization library to define the input and output schema of our RESTful API in a declarative, pythonic web. It is heavily inspired on Django REST Framework serializers, but with the goal of supporting many frameworks and ORMs
A library prodiving a users and role system with support with Flask and SQLAlchemy. It gives us customizable registration and login endpoints.
It was build on top of other common Flask libraries such as:
- Marshmallow-SQLAlchemy To automatically create Marshmallow schemas based on SQLAlchemy models
- Flask-SQLAlchemy provides us a nice way to use the framework and the ORM together. It also has a good pagination system that is used on many API endpoints
- Webargs to parse the request arguments given a Marshmallow Schema
Filteralchemy to make query filters in a declarative way, inspired on django-filter
Note
This library is unmantained, so we have our own fork of it hosted on https://github.com/infobyte/filteralchemy
- Depot to have pluggable file storage backends