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 !
Recommended when simply trying Aiko Services by using existing examples and tools.
Installs the Aiko Services package from PyPI
pip install aiko_services
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
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
After installing from GitHub (above), choose whether to use a public MQTT server ... or to install and run your own MQTT server
It is usually easier to briefly use a public remotely hosted MQTT server to get going quickly.
For the longer term, it is better and more secure to install and run your own MQTT server.
On Linux or Mac OS X: Start mosquitto, aiko_registrar and aiko_dashboard
./scripts/system_start.sh # default AIKO_MQTT_HOST=localhost
- Aloha Honua examples (hello world)
See GitHub Issues
-
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