Flama is a python library which establishes a standard framework for
development and deployment of APIs with special focus on machine learning (ML).
The main aim of the framework is to make ridiculously simple the deployment of
ML APIs, simplifying (when possible) the entire process to a single line of
code.
The library builds on Starlette, and provides an easy-to-learn
philosophy to speed up the building of highly performant GraphQL, REST and ML APIs.
Besides, it comprises an ideal solution for the development of asynchronous
and production-ready services, offering automatic deployment for ML models.
Some remarkable characteristics:
Generic classes for API resources with the convenience of standard CRUD methods over SQLAlchemy tables.
A schema system (based on Marshmallow or Typesystem) which allows the declaration of inputs and outputs of endpoints
very easily, with the convenience of reliable and automatic data-type validation.
Dependency injection to make ease the process of managing parameters needed in endpoints via the use of Components.
Flama ASGI objects like Request, Response, Session and so on are defined as Components ready to be injected in
your endpoints.
Components as the base of the plugin ecosystem, allowing you to create custom or use those already defined in your
endpoints, injected as parameters.
Auto generated API schema using OpenAPI standard.
Auto generated docs, and provides a Swagger UI and ReDoc endpoints.
Automatic handling of pagination, with several methods at your disposal such as limit-offset and page numbering,
to name a few.
Installation
Flama is fully compatible with all supported versions of Python. We recommend
you to use the latest version available.
from flama import Flama
app = Flama()
@app.route("/")defhome():
"""
tags:
- Salute
summary:
Returns a warming message
description:
This is a more detailed description of the method itself.
Here we can give all the details required and they will appear
automatically in the auto-generated docs.
responses:
200:
description: Warming hello message!
"""return {"message": "Hello 🔥"}
This example will build and run a Hello 🔥 API. To run it:
We found that flama demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Socket uncovered four malicious NuGet packages targeting ASP.NET apps, using a typosquatted dropper and localhost proxy to steal Identity data and backdoor apps.
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.