Expand description
§Headless Engine
An ultra-lightweight (<30MB RAM), detection-free pure-Rust headless browser engine architected specifically for AI agents, web scraping, and Go-based MCP servers.
§Quick Start (Rust SDK)
use headless_engine::{BrowserTab, DeviceProfile};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;
let report = tab.navigate("https://en.wikipedia.org/wiki/Rust_(programming_language)").await?;
println!("Title: {}", report.page_title);
let markdown = tab.extract_markdown(None).unwrap();
println!("Clean LLM Markdown:\n{}", markdown);
Ok(())
}§Multi-Tab Engine Example
use headless_engine::{BrowserEngine, DeviceProfile};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let mut engine = BrowserEngine::new()?;
let tab1 = engine.create_tab(Some(DeviceProfile::ChromeWindows))?;
let tab2 = engine.create_tab(Some(DeviceProfile::SafariIos))?;
engine.get_tab_mut(&tab1).unwrap().navigate("https://news.ycombinator.com/").await?;
engine.get_tab_mut(&tab2).unwrap().navigate("https://google.com/").await?;
Ok(())
}Re-exports§
pub use api::rpc::JsonRpcHandler;pub use api::rpc::RpcError;pub use api::rpc::RpcRequest;pub use api::rpc::RpcResponse;pub use browser::builder::BrowserBuilder;pub use browser::engine::BrowserEngine;pub use browser::engine::TabSummary;pub use browser::tab::BrowserTab;pub use dom::markdown::HtmlToMarkdown;pub use dom::AiOverview;pub use dom::DomTree;pub use dom::FormInfo;pub use dom::FormInputInfo;pub use dom::ImageResult;pub use dom::InteractiveElement;pub use dom::InteractiveParser;pub use dom::KnowledgePanel;pub use dom::LinkInfo;pub use dom::NewsResult;pub use dom::OrganicResult;pub use dom::PageObservation;pub use dom::PageRenderer;pub use dom::ScreenshotResult;pub use dom::SearchResults;pub use dom::VideoResult;pub use network::fingerprint::DeviceProfile;pub use network::fingerprint::Fingerprint;pub use render::HtmlRenderer;pub use render::LayoutEngine;pub use render::PaintEngine;