SDKs
Rust SDK
Async Rust client built on reqwest and tokio. The same crate powers the engine behind the hosted API — you can call the cloud or run the engine locally with one import.
Install
cargo add ilmeniteCloud client
use ilmenite::Client;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Client::new(std::env::var("ILMENITE_API_KEY")?);
let result = client
.scrape("https://news.ycombinator.com")
.formats(&["markdown", "links"])
.send()
.await?;
println!("{}", result.markdown);
println!("{} links in {}ms", result.links.len(), result.latency_ms);
Ok(())
}Local engine (no API calls)
use ilmenite::{Browser, Format};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let mut browser = Browser::new();
let page = browser.navigate("https://news.ycombinator.com").await?;
let md = page.to_format(Format::Markdown)?;
println!("{md}");
Ok(())
}Typed extraction with serde
use ilmenite::Client;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct Product {
name: String,
price_usd: f64,
in_stock: bool,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Client::from_env()?;
let product: Product = client
.extract::<Product>("https://example.com/product/42")
.send()
.await?;
println!("{:?}", product);
Ok(())
}Features
default— cloud HTTP client.engine— pull in the local browser engine.rustls— use rustls instead of native-tls.