Process
入力(引数)と出力を持つ冪等な関数としてソフトウェアを書きます。
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_pythonpython3 -m venv .venv && source .venv/bin/activatepip install juiz-clijuiz -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 を入れます。詳しくは インストール を見てください。