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
- Rust 1.70 o superior (
cargo). - El servidor xamiSDK instalado, pareado y corriendo (
xamisdk serve). - Una credencial de aplicación (
xamisdk wrapper:create --name mi-app), que te da unwrapper_keyy unwrapper_secret.
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
cargo1.75 que trae Ubuntu 24.04 porapt): sicargo buildfalla porqueidna_adapter(dependencia transitiva deureq, víaurl) pide la featureedition2024, fija versiones más viejas en tuCargo.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)
