コンテンツにスキップ

juiz

ロボットと IoT 機器を、冪等な関数と状態のコンテナで組み立てるミドルウェア

JUIZ (ジュイス) は、カメラやロボット、モータやセンサなどのロボット要素を動かすソフトウェアを複数の言語で開発し、 それらを結合して一つのソフトウェアサービスのように動作させるためのミドルウェアです。

Process

入力(引数)と出力を持つ冪等な関数としてソフトウェアを書きます。

Container

状態は Container に置き、ContainerProcess から読み書きします。状態と振る舞いを分けて設計できます。

connect と call

Process をつないでデータフローで動かすことも、外部から呼び出して結果を受け取ることもできます。

Rust・C++・Python

機能要素は 3 つの言語で書けます。HTTP+JSON と QUIC のブローカーを標準で備えています。

Python 3.10 以降があれば、pip install だけで試せます(Rust のツールチェーンは要りません)。

ターミナルウィンドウ
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

別のターミナルで同じ venv を有効にして、Process を呼び出します。

ターミナルウィンドウ
juiz process call "http://127.0.0.1:8000/process/increment0::increment_process_python" '{"arg1": 3}' -p
# => CapsulePtr((value:Value(4), option: []))

Rust や C++ で書く場合は cargo install juiz_app で juiz を入れます。詳しくは インストール を見てください。