Distributed embedded service framework for A.I and robotics
Project description
Aiko Services
Distributed system framework supporting AIoT, Machine Learning, Media streaming and 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 technology choices
- Supports the Actor Model
- Supports Flow based programming via distributed pipeline graphs
- Low-latency performance with fully asynchronous message passing
-
Ease of visualization and diagnosis for systems with many interconnected components
-
Light-weight core design, i.e a micro-controller reference implementation, e.g ESP32 running microPython
-
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
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
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
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 (hello world)
To Do
See GitHub Issues
Presentations
-
Building an open framework combining AIoT, Media, Robotics & Machine Learning (YouTube)
- Slide deck (Google slides)
- Everything Open conference March 2023: Melbourne
-
Using Python to stream media using GStreamer for RTSP and WebRTC applications (YouTube)
- Slide deck (Google slides)
- PyCon AU conference August 2023: Adelaide
-
microPython distributed, embedded services (YouTube)
- Slide deck (Google slides)
- microPython meet-up November 2023: Melbourne
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiko_services-0.6.tar.gz
.
File metadata
- Download URL: aiko_services-0.6.tar.gz
- Upload date:
- Size: 378.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f51b4939b7995cc8c4b9911fbd5ef1ede7c780cd9aab8c5919e3fd87117851c |
|
MD5 | 9b0314d2294ddf5265c246026bae1f59 |
|
BLAKE2b-256 | 191a917b5341d8cfc14bcd630c738b5824c78aef38191628dd5f82d2c1037bc6 |
File details
Details for the file aiko_services-0.6-py3-none-any.whl
.
File metadata
- Download URL: aiko_services-0.6-py3-none-any.whl
- Upload date:
- Size: 481.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3929fcd89b64decfb4ff5c691959ef42ef9ad8f5854f65e8bed4f47d3304795a |
|
MD5 | 2728d2a0dfcc99d2f45f66da9ef7dbc7 |
|
BLAKE2b-256 | 6f3fee7b0d80fe69bc2f09e6d54908c91a35a5c4e42c67c17dc0235e09216942 |