<p align="center">
    <a href="https://flama.dev"><img src="https://raw.githubusercontent.com/vortico/flama/master/.github/logo.png" alt='Flama'></a>
</p>
<p align="center">
    <em>Fire up your models with the flame</em> 🔥
</p>
<p align="center">
    <a href="https://github.com/vortico/flama/actions">
        <img src="https://github.com/vortico/flama/workflows/Test%20And%20Publish/badge.svg" alt="Test And Publish workflow status">
    </a>
    <a href="https://pypi.org/project/flama/">
        <img src="https://img.shields.io/pypi/v/flama?logo=PyPI&logoColor=white" alt="Package version">
    </a>
    <a href="https://pypi.org/project/flama/">
        <img src="https://img.shields.io/pypi/pyversions/flama?logo=Python&logoColor=white" alt="PyPI - Python Version">
    </a>
</p>
---
# Flama
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 `Component`s.
  Flama ASGI objects like `Request`, `Response`, `Session` and so on are defined as `Component`s ready to be injected in
  your endpoints.
- `Component`s 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](https://devguide.python.org/versions/) of Python. We recommend
you to use the latest version available.
For a detailed explanation on how to install flama
visit: [https://flama.dev/docs/getting-started/installation](https://flama.dev/docs/getting-started/installation).
## Getting Started
Visit [https://flama.dev/docs/getting-started/quickstart](https://flama.dev/docs/getting-started/quickstart) to get
started with Flama.
## Documentation
Visit [https://flama.dev/docs/](https://flama.dev/docs/) to view the full documentation.
## Example
```python
from flama import Flama
app = Flama()
@app.route("/")
def home():
    """
    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:
```commandline
flama run examples.hello_flama:app
```
## Authors
- José Antonio Perdiguero López ([@perdy](https://github.com/perdy/))
- Miguel Durán-Olivencia ([@migduroli](https://github.com/migduroli/))
## Contributing
This project is absolutely open to contributions so if you have a nice idea, please read
our [contributing docs](.github/CONTRIBUTING.md) **before submitting** a pull
request.
## Star History
<a href="https://github.com/vortico/flama">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=vortico/flama&type=Date&theme=dark" />
    <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=vortico/flama&type=Date" />
    <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=vortico/flama&type=Date" />
  </picture>
</a>
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "flama",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.15,>=3.10",
    "maintainer_email": "Jos\u00e9 Antonio Perdiguero L\u00f3pez <perdy@perdy.io>, \"Miguel A. Dur\u00e1n Olivencia\" <migduroli@gmail.com>",
    "keywords": "ai, api, ddd, machine-learning, ml, mlops, openapi, pytorch, rest, restful, sklearn, tensorflow",
    "author": null,
    "author_email": "Jos\u00e9 Antonio Perdiguero L\u00f3pez <perdy@perdy.io>, \"Miguel A. Dur\u00e1n Olivencia\" <migduroli@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/04/56/16516da488dfccdf4e7e64fb51e56e871546ab362918bfed63e599707360/flama-1.12.0.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n    <a href=\"https://flama.dev\"><img src=\"https://raw.githubusercontent.com/vortico/flama/master/.github/logo.png\" alt='Flama'></a>\n</p>\n<p align=\"center\">\n    <em>Fire up your models with the flame</em> 🔥\n</p>\n<p align=\"center\">\n    <a href=\"https://github.com/vortico/flama/actions\">\n        <img src=\"https://github.com/vortico/flama/workflows/Test%20And%20Publish/badge.svg\" alt=\"Test And Publish workflow status\">\n    </a>\n    <a href=\"https://pypi.org/project/flama/\">\n        <img src=\"https://img.shields.io/pypi/v/flama?logo=PyPI&logoColor=white\" alt=\"Package version\">\n    </a>\n    <a href=\"https://pypi.org/project/flama/\">\n        <img src=\"https://img.shields.io/pypi/pyversions/flama?logo=Python&logoColor=white\" alt=\"PyPI - Python Version\">\n    </a>\n</p>\n\n---\n\n# Flama\n\nFlama is a python library which establishes a standard framework for\ndevelopment and deployment of APIs with special focus on machine learning (ML).\nThe main aim of the framework is to make ridiculously simple the deployment of\nML APIs, simplifying (when possible) the entire process to a single line of\ncode.\n\nThe library builds on Starlette, and provides an easy-to-learn\nphilosophy to speed up the building of highly performant GraphQL, REST and ML APIs.\nBesides, it comprises an ideal solution for the development of asynchronous\nand production-ready services, offering automatic deployment for ML models.\n\nSome remarkable characteristics:\n\n- Generic classes for API resources with the convenience of standard CRUD methods over SQLAlchemy tables.\n- A schema system (based on Marshmallow or Typesystem) which allows the declaration of inputs and outputs of endpoints\n  very easily, with the convenience of reliable and automatic data-type validation.\n- Dependency injection to make ease the process of managing parameters needed in endpoints via the use of `Component`s.\n  Flama ASGI objects like `Request`, `Response`, `Session` and so on are defined as `Component`s ready to be injected in\n  your endpoints.\n- `Component`s as the base of the plugin ecosystem, allowing you to create custom or use those already defined in your\n  endpoints, injected as parameters.\n- Auto generated API schema using OpenAPI standard.\n- Auto generated `docs`, and provides a Swagger UI and ReDoc endpoints.\n- Automatic handling of pagination, with several methods at your disposal such as `limit-offset` and `page numbering`,\n  to name a few.\n\n## Installation\n\nFlama is fully compatible with all [supported versions](https://devguide.python.org/versions/) of Python. We recommend\nyou to use the latest version available.\n\nFor a detailed explanation on how to install flama\nvisit: [https://flama.dev/docs/getting-started/installation](https://flama.dev/docs/getting-started/installation).\n\n## Getting Started\n\nVisit [https://flama.dev/docs/getting-started/quickstart](https://flama.dev/docs/getting-started/quickstart) to get\nstarted with Flama.\n\n## Documentation\n\nVisit [https://flama.dev/docs/](https://flama.dev/docs/) to view the full documentation.\n\n## Example\n\n```python\nfrom flama import Flama\n\napp = Flama()\n\n\n@app.route(\"/\")\ndef home():\n    \"\"\"\n    tags:\n        - Salute\n    summary:\n        Returns a warming message\n    description:\n        This is a more detailed description of the method itself.\n        Here we can give all the details required and they will appear\n        automatically in the auto-generated docs.\n    responses:\n        200:\n            description: Warming hello message!\n    \"\"\"\n    return {\"message\": \"Hello \ud83d\udd25\"}\n```\n\nThis example will build and run a `Hello \ud83d\udd25` API. To run it:\n\n```commandline\nflama run examples.hello_flama:app\n```\n\n## Authors\n\n- Jos\u00e9 Antonio Perdiguero L\u00f3pez ([@perdy](https://github.com/perdy/))\n- Miguel Dur\u00e1n-Olivencia ([@migduroli](https://github.com/migduroli/))\n\n## Contributing\n\nThis project is absolutely open to contributions so if you have a nice idea, please read\nour [contributing docs](.github/CONTRIBUTING.md) **before submitting** a pull\nrequest.\n\n## Star History\n\n<a href=\"https://github.com/vortico/flama\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=vortico/flama&type=Date&theme=dark\" />\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=vortico/flama&type=Date\" />\n    <img alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=vortico/flama&type=Date\" />\n  </picture>\n</a>\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Fire up your models with the flame \ud83d\udd25",
    "version": "1.12.0",
    "project_urls": {
        "documentation": "https://flama.dev/docs/",
        "homepage": "https://flama.dev",
        "repository": "https://github.com/vortico/flama"
    },
    "split_keywords": [
        "ai",
        " api",
        " ddd",
        " machine-learning",
        " ml",
        " mlops",
        " openapi",
        " pytorch",
        " rest",
        " restful",
        " sklearn",
        " tensorflow"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "41a4fe3f827aefdf9d5f41ed8967e047f250e85e3627969d7aa63d2a43635656",
                "md5": "66257ce5f4aa8a2f0ad83cd6b0fcd184",
                "sha256": "d271ceae4a317ce0dbbd20a53b34f54fb69fbbbc800153ba66443a5639be971b"
            },
            "downloads": -1,
            "filename": "flama-1.12.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "66257ce5f4aa8a2f0ad83cd6b0fcd184",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.15,>=3.10",
            "size": 1386696,
            "upload_time": "2025-10-27T13:48:10",
            "upload_time_iso_8601": "2025-10-27T13:48:10.133989Z",
            "url": "https://files.pythonhosted.org/packages/41/a4/fe3f827aefdf9d5f41ed8967e047f250e85e3627969d7aa63d2a43635656/flama-1.12.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "045616516da488dfccdf4e7e64fb51e56e871546ab362918bfed63e599707360",
                "md5": "3abf3d551854d22c020851d1718f471a",
                "sha256": "9aacd661eece81f70987ddd4373afa6b41d012fc89419e11eceb5cdfa3820a04"
            },
            "downloads": -1,
            "filename": "flama-1.12.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3abf3d551854d22c020851d1718f471a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.15,>=3.10",
            "size": 1729650,
            "upload_time": "2025-10-27T13:48:11",
            "upload_time_iso_8601": "2025-10-27T13:48:11.809545Z",
            "url": "https://files.pythonhosted.org/packages/04/56/16516da488dfccdf4e7e64fb51e56e871546ab362918bfed63e599707360/flama-1.12.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-27 13:48:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vortico",
    "github_project": "flama",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "flama"
}