ariacompute-engine 1.16.0

Rust SDK for Aria engine (thin wrapper over ariacompute-inference / ariacompute-ffi)
Documentation

ariacompute-engine (Rust)

Thin SDK over ariacompute-inference (and re-exports of ariacompute-ffi for embedding tests). crates.io package name is ariacompute-engine; the Rust crate is still aria_engine.

cargo add ariacompute-engine
use aria_engine::{Engine, GenerateOpts};

let mut eng = Engine::open("/path/to/bundle")?;
let g = eng.complete("hi", &GenerateOpts { max_tokens: 16, temperature: 0.0 })?;

Engine::open_model also installs libaria_ffi into ~/.ariacompute/lib/ when missing (same Releases asset as aria-engine upgrade), so other language bindings can reuse it. Native Engine::open does not dlopen that library.

Auto-download by model name

Engine::open_model(model_ref, &OpenOptions { token, site }) accepts either a local bundle path or an Aria model name (e.g. gemma-4-e2b-it_q4). A value containing / or already on disk is loaded directly; otherwise the SDK downloads it from the regional public hub (same as aria-engine download: .com → Hugging Face, .cn → ModelScope; site defaults to https://ariacompute.com) into ~/.ariacompute/models/{model} and loads it. Dashboard is not used. A Dashboard sk- / bfvk- token is ignored for hub auth. Token is optional for public models. A valid cached bundle is reused without re-downloading.

Gated files: Engine::newauthopen_named (instance memory; does not write config.yml). Same keys as aria-engine auth. If omitted, the SDK reads ~/.ariacompute/config.yml. Associated open_model(..., &OpenOptions) remains.

use aria_engine::{AuthUpdates, Engine, OpenOptions};
let mut eng = Engine::open_model("gemma-4-e2b-it_q4", &OpenOptions::default())?;
let mut gated = Engine::new();
gated.auth(&AuthUpdates { hf_token: Some("hf_...".into()), ..Default::default() })?;
gated.open_named("gemma-4-e2b-it_q4")?;