coworks


Namecoworks JSON
Version 0.9.4 PyPI version JSON
download
home_pageNone
SummaryCoWorks is a unified compositional microservices framework using Flask/Airflow on AWS serverless technologies.
upload_time2024-04-16 15:20:13
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT License Copyright (c) 2019 FPR-Coworks Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords python3 serverless microservice flask airflow aws-lambda aws
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            .. image:: https://github.com/gdoumenc/coworks/raw/dev/docs/img/coworks.png
    :height: 80px
    :alt: CoWorks Logo

|Maintenance| |Build Status| |Documentation Status| |Coverage| |Python versions| |Licence|

.. |Maintenance| image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=plastic
    :alt: Maintenance
.. |Build Status| image:: https://img.shields.io/travis/com/gdoumenc/coworks?style=plastic
    :alt: Build Status
.. |Documentation Status| image:: https://readthedocs.org/projects/coworks/badge/?version=master&style=plastic
    :alt: Documentation Status
.. |Coverage| image:: https://img.shields.io/codecov/c/github/gdoumenc/coworks?style=plastic
    :alt: Codecov
.. |Python versions| image:: https://img.shields.io/pypi/pyversions/coworks?style=plastic
    :alt: Python Versions
.. |Licence| image:: https://img.shields.io/github/license/gdoumenc/coworks?style=plastic
    :alt: Licence

CoWorks is a unified serverless microservices framework based on AWS technologies
(`API Gateway <https://aws.amazon.com/api-gateway/>`_, `AWS Lambda <https://aws.amazon.com/lambda/>`_),
the Flask framework (`Flask <https://github.com/pallets/flask>`_/`Click <https://github.com/pallets/click>`_) and
the `Airflow <https://github.com/apache/airflow>`_ platform.

The aim of this project is to offer a very simplified experience of microservices. For such purpose, we divided the
CoWorks framework in two levels:

**Small technical microservice**

``TechMicroservice`` are each composed of simple python `Flask <https://github.com/pallets/flask>`_ application and deployed as a serverless Lambda. Each ``TechMicroService`` is an ``atomic component`` or `atomic microservice <http://resources.fiorano.com/blog/microservices/>`_. These microservices may be called synchronously or asynchronously.

**Functional business service**

``biz`` are `composite business services <http://resources.fiorano.com/blog/microservices/>`_, which are `Airflow <https://github.com/apache/airflow>`_ DAGs providing orchestration of atomic microservices or components (aka: ``TechMicroService``).

To get started with CoWorks, first follow the `Installation Guide <https://coworks.readthedocs.io/en/latest/installation.html>`_. Then you can get a quickstart on `TechMicroService Quickstart <https://coworks.readthedocs.io/en/latest/tech_quickstart.html>`_.
Once familiar with ``TechMicroService``, you can continue with `BizMicroService Quickstart <https://coworks.readthedocs.io/en/latest/biz_quickstart.html>`_.

**Data model**

The data model shared between those services may be structured with ``pydantic`` and using the JSON:API specification.
You can install this data protocol for CoWorks with: pip install coworks[jsonapi-sqlalchemy].

Documentation
-------------

* Setup and installation: `Installation <https://coworks.readthedocs.io/en/latest/installation.html>`_
* Complete reference guide: `Documentation <https://coworks.readthedocs.io/>`_.
* Samples:
    * layers : Get available CoWorks lambda layers: `CoWorks layers <https://2kb9hn4bs4.execute-api.eu-west-1.amazonaws.com/v1>`_.
    * website : Very simple website done as a simple microservice: `Website <https://3jr90vkbe5.execute-api.eu-west-1.amazonaws.com/v1>`_.
* Read `FAQ <https://coworks.readthedocs.io/en/master/faq.html/>`_ for other information.

Contributing
------------

We work hard to provide a high-quality and useful framework, and we greatly value
feedback and contributions from our community. Whether it's a new feature,
correction, or additional documentation, we welcome your pull requests. Please
submit any `issues <https://github.com/gdoumenc/coworks/issues>`__
or `pull requests <https://github.com/gdoumenc/coworks/pulls>`__ through GitHub.

Related Projects
----------------

* `Flask <https://github.com/pallets/flask>`_ - Lightweight WSGI web application framework (`Donate to Pallets <https://palletsprojects.com/donate>`_).
* `Airflow <https://github.com/apache/airflow>`_ - A platform to programmatically author, schedule, and monitor workflows.
* `Terraform <https://github.com/hashicorp/terraform>`_ - Infrastructure configuration management tool.
* `Pydantic <https://github.com/pydantic/pydantic>`_ - Data validation using Python type hints.

Some ideas guiding this project were found in :

* `Flask-Classy <https://github.com/apiguy/flask-classy>`_
* `PyDANJA <https://github.com/Centurix/pydanja>`_

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "coworks",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "python3, serverless, microservice, flask, airflow, aws-lambda, aws",
    "author": null,
    "author_email": "Guillaume Doumenc <gdoumenc@fpr-coworks.com>",
    "download_url": "https://files.pythonhosted.org/packages/be/7d/1ed2eef1b288097bcc746083af3f70821fe01f028baf6f9de3896a5c7472/coworks-0.9.4.tar.gz",
    "platform": null,
    "description": ".. image:: https://github.com/gdoumenc/coworks/raw/dev/docs/img/coworks.png\n    :height: 80px\n    :alt: CoWorks Logo\n\n|Maintenance| |Build Status| |Documentation Status| |Coverage| |Python versions| |Licence|\n\n.. |Maintenance| image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=plastic\n    :alt: Maintenance\n.. |Build Status| image:: https://img.shields.io/travis/com/gdoumenc/coworks?style=plastic\n    :alt: Build Status\n.. |Documentation Status| image:: https://readthedocs.org/projects/coworks/badge/?version=master&style=plastic\n    :alt: Documentation Status\n.. |Coverage| image:: https://img.shields.io/codecov/c/github/gdoumenc/coworks?style=plastic\n    :alt: Codecov\n.. |Python versions| image:: https://img.shields.io/pypi/pyversions/coworks?style=plastic\n    :alt: Python Versions\n.. |Licence| image:: https://img.shields.io/github/license/gdoumenc/coworks?style=plastic\n    :alt: Licence\n\nCoWorks is a unified serverless microservices framework based on AWS technologies\n(`API Gateway <https://aws.amazon.com/api-gateway/>`_, `AWS Lambda <https://aws.amazon.com/lambda/>`_),\nthe Flask framework (`Flask <https://github.com/pallets/flask>`_/`Click <https://github.com/pallets/click>`_) and\nthe `Airflow <https://github.com/apache/airflow>`_ platform.\n\nThe aim of this project is to offer a very simplified experience of microservices. For such purpose, we divided the\nCoWorks framework in two levels:\n\n**Small technical microservice**\n\n``TechMicroservice`` are each composed of simple python `Flask <https://github.com/pallets/flask>`_ application and deployed as a serverless Lambda. Each ``TechMicroService`` is an ``atomic component`` or `atomic microservice <http://resources.fiorano.com/blog/microservices/>`_. These microservices may be called synchronously or asynchronously.\n\n**Functional business service**\n\n``biz`` are `composite business services <http://resources.fiorano.com/blog/microservices/>`_, which are `Airflow <https://github.com/apache/airflow>`_ DAGs providing orchestration of atomic microservices or components (aka: ``TechMicroService``).\n\nTo get started with CoWorks, first follow the `Installation Guide <https://coworks.readthedocs.io/en/latest/installation.html>`_. Then you can get a quickstart on `TechMicroService Quickstart <https://coworks.readthedocs.io/en/latest/tech_quickstart.html>`_.\nOnce familiar with ``TechMicroService``, you can continue with `BizMicroService Quickstart <https://coworks.readthedocs.io/en/latest/biz_quickstart.html>`_.\n\n**Data model**\n\nThe data model shared between those services may be structured with ``pydantic`` and using the JSON:API specification.\nYou can install this data protocol for CoWorks with: pip install coworks[jsonapi-sqlalchemy].\n\nDocumentation\n-------------\n\n* Setup and installation: `Installation <https://coworks.readthedocs.io/en/latest/installation.html>`_\n* Complete reference guide: `Documentation <https://coworks.readthedocs.io/>`_.\n* Samples:\n    * layers : Get available CoWorks lambda layers: `CoWorks layers <https://2kb9hn4bs4.execute-api.eu-west-1.amazonaws.com/v1>`_.\n    * website : Very simple website done as a simple microservice: `Website <https://3jr90vkbe5.execute-api.eu-west-1.amazonaws.com/v1>`_.\n* Read `FAQ <https://coworks.readthedocs.io/en/master/faq.html/>`_ for other information.\n\nContributing\n------------\n\nWe work hard to provide a high-quality and useful framework, and we greatly value\nfeedback and contributions from our community. Whether it's a new feature,\ncorrection, or additional documentation, we welcome your pull requests. Please\nsubmit any `issues <https://github.com/gdoumenc/coworks/issues>`__\nor `pull requests <https://github.com/gdoumenc/coworks/pulls>`__ through GitHub.\n\nRelated Projects\n----------------\n\n* `Flask <https://github.com/pallets/flask>`_ - Lightweight WSGI web application framework (`Donate to Pallets <https://palletsprojects.com/donate>`_).\n* `Airflow <https://github.com/apache/airflow>`_ - A platform to programmatically author, schedule, and monitor workflows.\n* `Terraform <https://github.com/hashicorp/terraform>`_ - Infrastructure configuration management tool.\n* `Pydantic <https://github.com/pydantic/pydantic>`_ - Data validation using Python type hints.\n\nSome ideas guiding this project were found in :\n\n* `Flask-Classy <https://github.com/apiguy/flask-classy>`_\n* `PyDANJA <https://github.com/Centurix/pydanja>`_\n",
    "bugtrack_url": null,
    "license": "MIT License\n        \n        Copyright (c) 2019 FPR-Coworks\n        \n        Permission is hereby granted, free of charge, to any person obtaining a copy\n        of this software and associated documentation files (the \"Software\"), to deal\n        in the Software without restriction, including without limitation the rights\n        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n        copies of the Software, and to permit persons to whom the Software is\n        furnished to do so, subject to the following conditions:\n        \n        The above copyright notice and this permission notice shall be included in all\n        copies or substantial portions of the Software.\n        \n        THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n        SOFTWARE.",
    "summary": "CoWorks is a unified compositional microservices framework using Flask/Airflow on AWS serverless technologies.",
    "version": "0.9.4",
    "project_urls": {
        "Documentation": "https://coworks.readthedocs.io",
        "Source": "https://github.com/gdoumenc/coworks"
    },
    "split_keywords": [
        "python3",
        " serverless",
        " microservice",
        " flask",
        " airflow",
        " aws-lambda",
        " aws"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f31a9693969dc7e18a8e26f2148b4053a8326aa4a284bc9f0b879494cbb4d269",
                "md5": "effa0e5951b0876a0fa76ab1bb0edadc",
                "sha256": "0dd6ae96d71ae376eddc4f49c5c1be3e6119da3bfef5b261a85cf38aaefba8de"
            },
            "downloads": -1,
            "filename": "coworks-0.9.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "effa0e5951b0876a0fa76ab1bb0edadc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 73923,
            "upload_time": "2024-04-16T15:20:11",
            "upload_time_iso_8601": "2024-04-16T15:20:11.378378Z",
            "url": "https://files.pythonhosted.org/packages/f3/1a/9693969dc7e18a8e26f2148b4053a8326aa4a284bc9f0b879494cbb4d269/coworks-0.9.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be7d1ed2eef1b288097bcc746083af3f70821fe01f028baf6f9de3896a5c7472",
                "md5": "4de2d8c17787d81213ae3df956b2f98f",
                "sha256": "ec33b9a4431fd62c47c7bdc13deb46f8ca7d01715581f6be080324c6eaeb58fc"
            },
            "downloads": -1,
            "filename": "coworks-0.9.4.tar.gz",
            "has_sig": false,
            "md5_digest": "4de2d8c17787d81213ae3df956b2f98f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 72143,
            "upload_time": "2024-04-16T15:20:13",
            "upload_time_iso_8601": "2024-04-16T15:20:13.549279Z",
            "url": "https://files.pythonhosted.org/packages/be/7d/1ed2eef1b288097bcc746083af3f70821fe01f028baf6f9de3896a5c7472/coworks-0.9.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-16 15:20:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gdoumenc",
    "github_project": "coworks",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "coworks"
}
        
Elapsed time: 0.27585s