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 = truecargo add illuiners-client@0.1.0About 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
2026-06-12 07:52:51 +00:00
Assets (1)
Versions (1)
View all
Cargo
9
LicenseRef-Proprietary
12 KiB
illuiners-client-0.1.0.crate
12 KiB
0.1.0
2026-06-12