/aiko_services

Distributed service framework using asynchronous messages supporting IoT, Machine Learning and Video

Primary LanguagePythonApache License 2.0Apache-2.0

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

  • 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

To Do

See GitHub Issues

Presentations