headless-engine 1.0.2

A high-performance, lightweight (<30MB RAM) headless browser engine written in Rust for AI agents, web automation, and LLM data ingestion.
Documentation
use anyhow::Result;
use headless_engine::browser::tab::BrowserTab;
use headless_engine::network::fingerprint::DeviceProfile;
use std::fs;

#[tokio::main]
async fn main() -> Result<()> {
    println!("================================================================================");
    println!(">>> TESTING REAL HTML/CSS LAYOUT & PAINT ENGINE (PURE RUST, ZERO CHROMIUM)");
    println!("================================================================================\n");

    let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;

    // 1. Test Wikipedia
    let url = "https://en.wikipedia.org/wiki/Rust_(programming_language)";
    println!("[1] Navigating to: {}", url);
    let report = tab.navigate(url).await?;
    println!("  * Title: {}", report.page_title);
    println!("  * HTML Size: {} bytes", report.html_bytes);

    println!("[2] Performing Real HTML/CSS Layout Pass & Rasterizing to PNG...");
    let shot = tab.screenshot_async().await.expect("Expected screenshot");
    println!("  * Resolution: {}x{}", shot.width, shot.height);
    println!("  * Real PNG Size: {} bytes", shot.png_bytes.len());
    println!("  * Base64 Data URL Prefix: {}...", &shot.png_base64[..50]);

    fs::write("wikipedia_screenshot.png", &shot.png_bytes)?;
    println!("  -> Successfully wrote real binary image: 'wikipedia_screenshot.png'");

    println!("\n================================================================================");
    println!(">>> REAL HTML/CSS LAYOUT & PAINT PASSED WITH ZERO CHROMIUM (<30MB RAM)!");
    println!("================================================================================");

    Ok(())
}