illuiners-client (0.1.0)

Published 2026-06-12 07:52:51 +00:00 by madsludvig

Installation

[registry]
default = "forgejo"

[registries.forgejo]
index = "sparse+" # Sparse index
# index = "" # Git

[net]
git-fetch-with-cli = true
cargo add illuiners-client@0.1.0

About this package

Ergonomic Rust client for the illuiners vision runtime: builder-style vision calls over MQTT with per-run futures.

illuiners-client

Ergonomic Rust client for the illuiners vision runtime. Builder-style vision calls over MQTT; each call returns a handle with two futures — one resolving when the frames are stored (safe to move the part), one when the run finishes with detections and annotated images.

use illuiners_client::{Config, IlluinersClient};

let client = IlluinersClient::connect(Config {
    mqtt_host: "localhost".into(),
    mqtt_port: 1883,
    http_base: "http://localhost:9090".into(),
    client_id: "my-app".into(),
});

let run = client
    .vision("my_function")
    .inspection(42)
    .tag("box_id", "07ABCDEFG")
    .trigger();

let raw = run.captured().await;       // frames stored — part may move again
let result = run.result().await?;     // Detections + annotated image URLs

Poll-style consumers (e.g. a fixed-rate control loop) can use the non-blocking probes is_captured() / try_result() instead of awaiting.

Connection and deploy-readiness are watch channels: client.connected(), client.ready().

Note on correlation: the MQTT protocol carries no trigger→run id, so the client claims runs FIFO per function. Trigger each function serially.

Dependencies

ID Version
anyhow ^1
log ^0.4
rumqttc ^0.24
serde ^1
serde_json ^1
tokio ^1
Details
Cargo
2026-06-12 07:52:51 +00:00
8
LicenseRef-Proprietary
12 KiB
Assets (1)
Versions (1) View all
0.1.0 2026-06-12