Skip to content

juiz

Middleware that builds robots and IoT devices from idempotent functions and state containers

JUIZ lets you write software that drives cameras, robots, motors and sensors in several languages, then combine those pieces so they run together as a single software service.

Process

Write software as idempotent functions with inputs (arguments) and outputs.

Container

Keep state in a Container and read or write it through ContainerProcesses, so state and behavior stay separate.

connect and call

Wire Processes together as a dataflow, or call them from outside and get the result back.

Rust, C++, Python

Write components in three languages. HTTP+JSON and QUIC brokers are built in.

With Python 3.10 or later, pip install is all you need (no Rust toolchain).

Terminal window
git clone https://github.com/OpenJUIZ/juiz_examples_python.git && cd juiz_examples_python
python3 -m venv .venv && source .venv/bin/activate
pip install juiz-cli
juiz -f increment_process.conf -d

In another terminal, activate the same venv and call the Process.

Terminal window
juiz process call "http://127.0.0.1:8000/process/increment0::increment_process_python" '{"arg1": 3}' -p
# => CapsulePtr((value:Value(4), option: []))

To write in Rust or C++, install juiz with cargo install juiz_app. See Installation for details.