# Aiko Services
Distributed system framework supporting
[AIoT](https://en.wikipedia.org/wiki/Artificial_intelligence_of_things), [Machine Learning](https://en.wikipedia.org/wiki/Machine_learning), [Media streaming](https://en.wikipedia.org/wiki/Streaming_media) and [Robotics](https://en.wikipedia.org/wiki/Robotics)
## Features
- Supports multi-nodal Machine Learning streaming pipelines ... that span from edge (embedded) devices all the way through to the data centre systems and back again
- Consistent distributed system approach integrating [best-of-breed](https://wiki.c2.com/?BestOfBreed) technology choices
- Supports the [Actor Model](https://en.wikipedia.org/wiki/Actor_model)
- Supports [Flow based programming](https://en.wikipedia.org/wiki/Flow-based_programming) via distributed pipeline graphs
- [Low-latency performance](https://en.wikipedia.org/wiki/Event-driven_programming) with fully asynchronous [message passing](https://en.wikipedia.org/wiki/Message_passing#Distributed_objects)
- Ease of visualization and diagnosis for systems with many interconnected components
- Light-weight core design, i.e a [micro-controller reference implementation](https://github.com/geekscape/aiko_engine_mp), e.g [ESP32](https://en.wikipedia.org/wiki/ESP32) running [microPython](https://micropython.org)
- Flexible deployment choices when deciding which components should run in the same process (for performance) or across different processes and/or hosts (for flexibility)
- Aiming to make the difficult parts ... much easier !
# Installation
## Installing from PyPI (Python Package Index)
Recommended when simply trying Aiko Services by using existing examples and tools.
Installs the [Aiko Services package from PyPI](https://pypi.org/project/aiko_services)
```
pip install aiko_services
```
## Installing from GitHub
Recommended when using Aiko Services as a framework for development
```
git clone https://github.com/geekscape/aiko_services.git
cd aiko_services
python3 -m venv venv # Once only
source venv/bin/activate # Each terminal session
pip install -U pip # Install latest pip
pip install -e . # Install Aiko Services for development
```
## Installing for package maintainers
Recommended when making an [Aiko Services release to PyPI](https://pypi.org/project/aiko_services)
After **installing from GitHub** *(above)*, perform these additional commands
```
pip install -U hatch # Install latest Hatch build and package manager
hatch shell # Run shell using Hatch to manage dependencies
# hatch test # Run local tests (to be completed)
hatch build # Publish Aiko Services package to PyPI
```
# Quick start
After **installing from GitHub** *(above)*, choose whether to use a public MQTT server ... or to install and run your own MQTT server
It is easier to start by using a public remotely hosted MQTT server to tryout a few examples.
For the longer term, it is better and more secure to install and run your own MQTT server.
## Running your own mosquitto (MQTT) server
- Install the mosquitto (MQTT) server on [Linux](https://docs.vultr.com/install-mosquitto-mqtt-broker-on-ubuntu-20-04-server), [Mac OS X](https://subscription.packtpub.com/book/iot-and-hardware/9781787287815/1/ch01lvl1sec12/installing-a-mosquitto-broker-on-macos) or [Windows](https://cedalo.com/blog/how-to-install-mosquitto-mqtt-broker-on-windows)
On Linux or Mac OS X: Start mosquitto, aiko_registrar and aiko_dashboard
```
./scripts/system_start.sh # default AIKO_MQTT_HOST=localhost
```
# Examples
- [Aloha Honua examples](src/aiko_services/examples/aloha_honua/ReadMe.md)
(hello world)
# To Do
See [GitHub Issues](https://github.com/geekscape/aiko_services/issues)
# Presentations
- [Building an open framework combining AIoT, Media, Robotics & Machine Learning (YouTube)](https://www.youtube.com/watch?v=htbzn_xwEnU)
- [Slide deck (Google slides)](https://docs.google.com/presentation/d/1dR8jw6sEKkgPBMDsKkZd87Y79LMk7jhVxxAmRMbjmbE/edit#)
- Everything Open conference March 2023: Melbourne
- [Using Python to stream media using GStreamer for RTSP and WebRTC applications (YouTube)](https://www.youtube.com/watch?v=VwnWHC04Qp8)
- [Slide deck (Google slides)](https://docs.google.com/presentation/d/1yc8jMcq8967L3fzIBmiy7MMYaBhSKD1L3XJ979_VanE/edit#)
- PyCon AU conference August 2023: Adelaide
- [microPython distributed, embedded services (YouTube)](https://www.youtube.com/watch?v=25Ij-EUjqS4)
- [Slide deck (Google slides)](https://docs.google.com/presentation/d/1V0_Hr3AKxRysg6AvgI1w2viBhFNmvcF1RwdIBMJJVCI/edit#)
- microPython meet-up November 2023: Melbourne
Raw data
{
"_id": null,
"home_page": null,
"name": "aiko_services",
"maintainer": null,
"docs_url": null,
"requires_python": "<=3.13.0,>=3.9.0",
"maintainer_email": null,
"keywords": "ai, distributed, embedded, framework, internet of things, machine learning, media, robotics",
"author": null,
"author_email": "Andy Gelme <geekscape@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/19/1a/917b5341d8cfc14bcd630c738b5824c78aef38191628dd5f82d2c1037bc6/aiko_services-0.6.tar.gz",
"platform": null,
"description": "# Aiko Services\n\nDistributed system framework supporting\n[AIoT](https://en.wikipedia.org/wiki/Artificial_intelligence_of_things), [Machine Learning](https://en.wikipedia.org/wiki/Machine_learning), [Media streaming](https://en.wikipedia.org/wiki/Streaming_media) and [Robotics](https://en.wikipedia.org/wiki/Robotics)\n\n## Features\n\n- Supports multi-nodal Machine Learning streaming pipelines ... that span from edge (embedded) devices all the way through to the data centre systems and back again\n\n- Consistent distributed system approach integrating [best-of-breed](https://wiki.c2.com/?BestOfBreed) technology choices\n - Supports the [Actor Model](https://en.wikipedia.org/wiki/Actor_model)\n - Supports [Flow based programming](https://en.wikipedia.org/wiki/Flow-based_programming) via distributed pipeline graphs\n - [Low-latency performance](https://en.wikipedia.org/wiki/Event-driven_programming) with fully asynchronous [message passing](https://en.wikipedia.org/wiki/Message_passing#Distributed_objects)\n\n- Ease of visualization and diagnosis for systems with many interconnected components\n\n- Light-weight core design, i.e a [micro-controller reference implementation](https://github.com/geekscape/aiko_engine_mp), e.g [ESP32](https://en.wikipedia.org/wiki/ESP32) running [microPython](https://micropython.org)\n\n- Flexible deployment choices when deciding which components should run in the same process (for performance) or across different processes and/or hosts (for flexibility)\n\n- Aiming to make the difficult parts ... much easier !\n\n# Installation\n\n## Installing from PyPI (Python Package Index)\n\nRecommended when simply trying Aiko Services by using existing examples and tools. \nInstalls the [Aiko Services package from PyPI](https://pypi.org/project/aiko_services)\n```\npip install aiko_services\n```\n\n## Installing from GitHub\n\nRecommended when using Aiko Services as a framework for development\n```\ngit clone https://github.com/geekscape/aiko_services.git\ncd aiko_services\npython3 -m venv venv # Once only\nsource venv/bin/activate # Each terminal session\npip install -U pip # Install latest pip\npip install -e . # Install Aiko Services for development\n```\n\n## Installing for package maintainers\n\nRecommended when making an [Aiko Services release to PyPI](https://pypi.org/project/aiko_services) \nAfter **installing from GitHub** *(above)*, perform these additional commands\n```\npip install -U hatch # Install latest Hatch build and package manager\nhatch shell # Run shell using Hatch to manage dependencies\n# hatch test # Run local tests (to be completed)\nhatch build # Publish Aiko Services package to PyPI\n```\n\n# Quick start\n\nAfter **installing from GitHub** *(above)*, choose whether to use a public MQTT server ... or to install and run your own MQTT server\n\nIt is easier to start by using a public remotely hosted MQTT server to tryout a few examples. \nFor the longer term, it is better and more secure to install and run your own MQTT server.\n\n## Running your own mosquitto (MQTT) server\n\n- Install the mosquitto (MQTT) server on [Linux](https://docs.vultr.com/install-mosquitto-mqtt-broker-on-ubuntu-20-04-server), [Mac OS X](https://subscription.packtpub.com/book/iot-and-hardware/9781787287815/1/ch01lvl1sec12/installing-a-mosquitto-broker-on-macos) or [Windows](https://cedalo.com/blog/how-to-install-mosquitto-mqtt-broker-on-windows)\n\nOn Linux or Mac OS X: Start mosquitto, aiko_registrar and aiko_dashboard\n```\n./scripts/system_start.sh # default AIKO_MQTT_HOST=localhost\n```\n\n# Examples\n\n- [Aloha Honua examples](src/aiko_services/examples/aloha_honua/ReadMe.md)\n (hello world)\n\n# To Do\n\nSee [GitHub Issues](https://github.com/geekscape/aiko_services/issues)\n\n# Presentations\n\n- [Building an open framework combining AIoT, Media, Robotics & Machine Learning (YouTube)](https://www.youtube.com/watch?v=htbzn_xwEnU)\n - [Slide deck (Google slides)](https://docs.google.com/presentation/d/1dR8jw6sEKkgPBMDsKkZd87Y79LMk7jhVxxAmRMbjmbE/edit#)\n - Everything Open conference March 2023: Melbourne\n\n- [Using Python to stream media using GStreamer for RTSP and WebRTC applications (YouTube)](https://www.youtube.com/watch?v=VwnWHC04Qp8)\n - [Slide deck (Google slides)](https://docs.google.com/presentation/d/1yc8jMcq8967L3fzIBmiy7MMYaBhSKD1L3XJ979_VanE/edit#)\n - PyCon AU conference August 2023: Adelaide\n\n- [microPython distributed, embedded services (YouTube)](https://www.youtube.com/watch?v=25Ij-EUjqS4)\n - [Slide deck (Google slides)](https://docs.google.com/presentation/d/1V0_Hr3AKxRysg6AvgI1w2viBhFNmvcF1RwdIBMJJVCI/edit#)\n - microPython meet-up November 2023: Melbourne\n",
"bugtrack_url": null,
"license": null,
"summary": "Distributed embedded service framework for A.I and robotics",
"version": "0.6",
"project_urls": null,
"split_keywords": [
"ai",
" distributed",
" embedded",
" framework",
" internet of things",
" machine learning",
" media",
" robotics"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6f3fee7b0d80fe69bc2f09e6d54908c91a35a5c4e42c67c17dc0235e09216942",
"md5": "2728d2a0dfcc99d2f45f66da9ef7dbc7",
"sha256": "3929fcd89b64decfb4ff5c691959ef42ef9ad8f5854f65e8bed4f47d3304795a"
},
"downloads": -1,
"filename": "aiko_services-0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2728d2a0dfcc99d2f45f66da9ef7dbc7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<=3.13.0,>=3.9.0",
"size": 481227,
"upload_time": "2024-10-14T00:13:58",
"upload_time_iso_8601": "2024-10-14T00:13:58.648583Z",
"url": "https://files.pythonhosted.org/packages/6f/3f/ee7b0d80fe69bc2f09e6d54908c91a35a5c4e42c67c17dc0235e09216942/aiko_services-0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "191a917b5341d8cfc14bcd630c738b5824c78aef38191628dd5f82d2c1037bc6",
"md5": "9b0314d2294ddf5265c246026bae1f59",
"sha256": "4f51b4939b7995cc8c4b9911fbd5ef1ede7c780cd9aab8c5919e3fd87117851c"
},
"downloads": -1,
"filename": "aiko_services-0.6.tar.gz",
"has_sig": false,
"md5_digest": "9b0314d2294ddf5265c246026bae1f59",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<=3.13.0,>=3.9.0",
"size": 378290,
"upload_time": "2024-10-14T00:13:51",
"upload_time_iso_8601": "2024-10-14T00:13:51.866665Z",
"url": "https://files.pythonhosted.org/packages/19/1a/917b5341d8cfc14bcd630c738b5824c78aef38191628dd5f82d2c1037bc6/aiko_services-0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-14 00:13:51",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "aiko_services"
}