SDK · Manuales
Descargas

XamiLib Rust — Instalación

XamiLib para Rust (xamisdk_client) es la librería que permite a tu aplicación Rust firmar a través del servicio local del xamiSDK. Tu aplicación habla con el servicio local (nunca con Xami directamente); el documento no sale de tu red.

A diferencia del resto de librerías de esta suite (Node, Ruby, Go, .NET, Java — todas sin dependencias externas, solo su stdlib), Rust no trae cliente HTTP ni JSON de fábrica. XamiLib Rust usa ureq (cliente HTTP bloqueante, sin runtime async), serde_json (para las respuestas, como tipo genérico Value) y base64 (para el PDF en pdf_base64).

Requisitos

Instalación

Descarga el paquete desde https://sdk.xami.run/files/xamisdk-rust-0.1.0.zip, descomprímelo junto a tu proyecto y agrégalo como dependencia de ruta en tu Cargo.toml:

curl -O https://sdk.xami.run/files/xamisdk-rust-0.1.0.zip
unzip xamisdk-rust-0.1.0.zip
[dependencies]
xamisdk_client = { path = "./xamisdk-rust" }

Toolchain viejo (p. ej. el cargo 1.75 que trae Ubuntu 24.04 por apt): si cargo build falla porque idna_adapter (dependencia transitiva de ureq, vía url) pide la feature edition2024, fija versiones más viejas en tu Cargo.toml:

url = "=2.4.1"
idna = "=0.4.0"
ureq = { version = "=2.9.7", default-features = false, features = ["json"] }

Con un toolchain reciente no hace falta tocar nada.

Primer uso

use xamisdk_client::{Config, XamiSDK};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let xami = XamiSDK::new(Config {
        endpoint: "http://127.0.0.1:8300".to_string(),
        wrapper_key: "wrp_...".to_string(),
        wrapper_secret: "wsec_...".to_string(),
        ..Default::default()
    });

    let estado = xami.health().get_self()?;
    println!("{}", if estado["paired"].as_bool().unwrap_or(false) { "pareado" } else { "sin parear" });
    Ok(())
}
Descargar este manual (.md)