fastiot


Namefastiot JSON
Version 1.1 PyPI version JSON
download
home_page
SummaryFastIoT Platform
upload_time2023-12-22 10:33:15
maintainer
docs_urlNone
author
requires_python>=3.9
license
keywords industrial iot iot industry4.0 iiot
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FastIoT (fastiot)

FastIoT is a framework for rapid development of IIoT-Systems using Python as main programming language.
It helps to set up a micro-service architecture and create services. The development has been started as basis for 
various research projects at Fraunhofer IVV, Dresden, Germany.  

To get started quickly it is equipped with a powerful command line interface (CLI): `fiot`.
This helps setting up a new project, create new services and run tests. 
It also supports creating cross-architecture Docker-containers and deployment configurations with docker-compose files
and Ansible playbooks to bring the software to the systems they belong. Run `fiot --help` for a full list of features.

As for now the overall framework has only been used and tested on Linux systems.

A full documentation is available at https://fastiot.readthedocs.io 
(or at http://docs.dev.ivv-dd.fhg.de/fastiot/_latest/ within the Fraunhofer IVV)

If you use this framework in your scientific projects please cite: 
> Tilman Klaeger, Konstantin Merker, "FastIoT – A Holistic Approach for Rapid Development of IIoT Systems", 2022.
> https://doi.org/10.48550/arXiv.2201.13243.

## License

Copyright 2022 Fraunhofer IVV, Dresden and contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.




## Requirements

These are the requirements you need to setup:

* Python 3.9 or newer and the possibility to create virtual environments.

If you want to build services or do integration tests with databases or other services you also need to have a working
docker setup:
* Docker
* docker-compose

If you want to use Ansible for deploying your services you also need to Ansible installed.


## Getting started

It is always recommended to use a separate virtual environment for each project, so let’s create one: 
`python3 -m venv venv` and use it: `source venv/bin/activate`

Afterwards you can install FastIoT: `python3 -m pip install "fastiot[dev]"`

To set up a new project with the name `my_first_project` you can now run: `fiot create new-project my_first_project`

Within this repository you can find some sample services to use as template.
Or you can simply ask the CLI to create a new services: `fiot create new-service my_first_service`.
You should now find a service stub in your project to be extended with your application logic.
The service will be added to the deployment "full" automatically.

You can now also create deployment configurations (e.g. a `docker-compose.yaml`) using `fiot config` and build 
containers for your project using `fiot build`.

As the service has been added to a deployment automatically you now start the service (with broker) with the command
`fiot start full`. You should see the log messages from sending and receiving data. To cancel just press [Ctrl]+[C].

For a more comprehensive list of features, a guide to the project structure please refer to the complete documentation.

To run services locally, in your IDE or within a container you may also refer to the complete documentation.

## Developing FastIoT

Simply check out this project and install the dependencies listed in `requirements.txt`.
To run all tests and sample services you may also install additional packages listed in 
`requirements/requirements.all.txt`.
Do *NOT* install fastiot when developing within this code.
This will produce duplicates and may show weird errors. 
If in doubt run `pip uninstall fastiot`.

To make sure you can run commands like `fiot` you must add the `src`-directory to your Python Path: 
`export PYTHONPATH="$(pwd)/src:$PYTHONPATH"`

### Project structure

A detailed structure for all projects based on FastIoT is listed in the documentation. Here just the few most important 
parts are listed:

* `src/fastiot`: The core library and base with CLI, message handling, …
* `src/fastiot_core_services`: Core Services to use directly in any project
* `src/fastiot_sample_services`: Some examples about how to write services. Maybe used as copy and paste template for
* own services.

### Release process

Currently, and subject to change, new commits in the main-branch will rise the version number automatically and count 
from the last tag set.

Once the interfaces are proven to be stable, development will take place in specific dev branches and only be merged to
main for a new release.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "fastiot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "Tilman Klaeger <tilman.klaeger@ivv-dd.fraunhofer.de>, Tim Kaluza <tim.kaluza@ivv-dd.fraunhofer.de>, Jialiang Yin <jialiang.yin@ivv-dd.fraunhofer.de>",
    "keywords": "Industrial IoT,IoT,Industry4.0,IIoT",
    "author": "",
    "author_email": "Tilman Klaeger <tilman.klaeger@ivv-dd.fraunhofer.de>, Konstantin Merker <konstantin.merker@ivv-dd.fraunhofer.de>, Fraunhofer Institute for Process Engineering and Packaging IVV <info@ivv-dd.fraunhofer.de>",
    "download_url": "https://files.pythonhosted.org/packages/05/68/198fa2ecf4086c30d1bb154c4bebfffe2557f2ac15dec1000f6c2f73733d/fastiot-1.1.tar.gz",
    "platform": null,
    "description": "# FastIoT (fastiot)\n\nFastIoT is a framework for rapid development of IIoT-Systems using Python as main programming language.\nIt helps to set up a micro-service architecture and create services. The development has been started as basis for \nvarious research projects at Fraunhofer IVV, Dresden, Germany.  \n\nTo get started quickly it is equipped with a powerful command line interface (CLI): `fiot`.\nThis helps setting up a new project, create new services and run tests. \nIt also supports creating cross-architecture Docker-containers and deployment configurations with docker-compose files\nand Ansible playbooks to bring the software to the systems they belong. Run `fiot --help` for a full list of features.\n\nAs for now the overall framework has only been used and tested on Linux systems.\n\nA full documentation is available at https://fastiot.readthedocs.io \n(or at http://docs.dev.ivv-dd.fhg.de/fastiot/_latest/ within the Fraunhofer IVV)\n\nIf you use this framework in your scientific projects please cite: \n> Tilman Klaeger, Konstantin Merker, \"FastIoT \u2013 A Holistic Approach for Rapid Development of IIoT Systems\", 2022.\n> https://doi.org/10.48550/arXiv.2201.13243.\n\n## License\n\nCopyright 2022 Fraunhofer IVV, Dresden and contributors\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n   http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\n\n## Requirements\n\nThese are the requirements you need to setup:\n\n* Python 3.9 or newer and the possibility to create virtual environments.\n\nIf you want to build services or do integration tests with databases or other services you also need to have a working\ndocker setup:\n* Docker\n* docker-compose\n\nIf you want to use Ansible for deploying your services you also need to Ansible installed.\n\n\n## Getting started\n\nIt is always recommended to use a separate virtual environment for each project, so let\u2019s create one: \n`python3 -m venv venv` and use it: `source venv/bin/activate`\n\nAfterwards you can install FastIoT: `python3 -m pip install \"fastiot[dev]\"`\n\nTo set up a new project with the name `my_first_project` you can now run: `fiot create new-project my_first_project`\n\nWithin this repository you can find some sample services to use as template.\nOr you can simply ask the CLI to create a new services: `fiot create new-service my_first_service`.\nYou should now find a service stub in your project to be extended with your application logic.\nThe service will be added to the deployment \"full\" automatically.\n\nYou can now also create deployment configurations (e.g. a `docker-compose.yaml`) using `fiot config` and build \ncontainers for your project using `fiot build`.\n\nAs the service has been added to a deployment automatically you now start the service (with broker) with the command\n`fiot start full`. You should see the log messages from sending and receiving data. To cancel just press [Ctrl]+[C].\n\nFor a more comprehensive list of features, a guide to the project structure please refer to the complete documentation.\n\nTo run services locally, in your IDE or within a container you may also refer to the complete documentation.\n\n## Developing FastIoT\n\nSimply check out this project and install the dependencies listed in `requirements.txt`.\nTo run all tests and sample services you may also install additional packages listed in \n`requirements/requirements.all.txt`.\nDo *NOT* install fastiot when developing within this code.\nThis will produce duplicates and may show weird errors. \nIf in doubt run `pip uninstall fastiot`.\n\nTo make sure you can run commands like `fiot` you must add the `src`-directory to your Python Path: \n`export PYTHONPATH=\"$(pwd)/src:$PYTHONPATH\"`\n\n### Project structure\n\nA detailed structure for all projects based on FastIoT is listed in the documentation. Here just the few most important \nparts are listed:\n\n* `src/fastiot`: The core library and base with CLI, message handling, \u2026\n* `src/fastiot_core_services`: Core Services to use directly in any project\n* `src/fastiot_sample_services`: Some examples about how to write services. Maybe used as copy and paste template for\n* own services.\n\n### Release process\n\nCurrently, and subject to change, new commits in the main-branch will rise the version number automatically and count \nfrom the last tag set.\n\nOnce the interfaces are proven to be stable, development will take place in specific dev branches and only be merged to\nmain for a new release.\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "FastIoT Platform",
    "version": "1.1",
    "project_urls": {
        "Documentation": "https://fastiot.readthedocs.io",
        "Homepage": "https://github.com/FraunhoferIVV/fastiot",
        "Source": "https://github.com/FraunhoferIVV/fastiot"
    },
    "split_keywords": [
        "industrial iot",
        "iot",
        "industry4.0",
        "iiot"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7fae10b58d6d665b7cea84e706863eaca0fd18fbb97af566b4104f2902ea816a",
                "md5": "1cc56e39782e03423aee9cdec14c50fb",
                "sha256": "32757b12092a3fa9ca3043658158406e43335583adf2d77b2121d311cd27495a"
            },
            "downloads": -1,
            "filename": "fastiot-1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1cc56e39782e03423aee9cdec14c50fb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 119375,
            "upload_time": "2023-12-22T10:33:12",
            "upload_time_iso_8601": "2023-12-22T10:33:12.945050Z",
            "url": "https://files.pythonhosted.org/packages/7f/ae/10b58d6d665b7cea84e706863eaca0fd18fbb97af566b4104f2902ea816a/fastiot-1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0568198fa2ecf4086c30d1bb154c4bebfffe2557f2ac15dec1000f6c2f73733d",
                "md5": "0e785133f242195259eb0183a0f9e6a2",
                "sha256": "2b87774871642ed4516567f88e46f3d06f3f8bf91d816c4394cf603f9f144c03"
            },
            "downloads": -1,
            "filename": "fastiot-1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "0e785133f242195259eb0183a0f9e6a2",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 95075,
            "upload_time": "2023-12-22T10:33:15",
            "upload_time_iso_8601": "2023-12-22T10:33:15.206491Z",
            "url": "https://files.pythonhosted.org/packages/05/68/198fa2ecf4086c30d1bb154c4bebfffe2557f2ac15dec1000f6c2f73733d/fastiot-1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-22 10:33:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FraunhoferIVV",
    "github_project": "fastiot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "fastiot"
}
        
Elapsed time: 0.15129s