Expand description
§Eoka
Stealth browser automation for Rust — a Puppeteer/Playwright alternative that bypasses bot detection.
Eoka is a minimal, fast headless Chrome library built from scratch. Unlike Selenium or chromiumoxide, it uses a custom CDP implementation with stealth filtering to avoid detection by Cloudflare, DataDome, PerimeterX, and other anti-bot systems.
§Features
- Stealth by Default - Binary patching, 15 JS evasions, human-like mouse/typing
- Puppeteer-like API -
click(),type(),wait_for(),screenshot(), etc. - Minimal Dependencies - ~10 crates total, no chromiumoxide bloat
- AI-Agent Ready - PageState introspection, element indexing, text extraction
- Fast - Lazy evasion scripts, mmap patching, stack-allocated paths
§Quick Start
use eoka::Browser;
#[tokio::main]
async fn main() -> eoka::Result<()> {
// Launch browser (patches Chrome, applies evasions)
let browser = Browser::launch().await?;
// Create page and navigate
let page = browser.new_page("https://example.com").await?;
// Human-like interactions
page.human_click("#button").await?;
page.human_type("#input", "hello world").await?;
// Screenshot
let png = page.screenshot().await?;
std::fs::write("screenshot.png", png)?;
browser.close().await?;
Ok(())
}§Configuration
use eoka::{Browser, StealthConfig};
let config = StealthConfig {
headless: true,
patch_binary: true,
webgl_spoof: true,
canvas_spoof: true,
..Default::default()
};
let browser = Browser::launch_with_config(config).await?;Re-exports§
pub use browser::Browser;pub use browser::TabInfo;pub use error::Error;pub use error::Result;pub use network::NetworkEvent;pub use network::NetworkWatcher;pub use page::BoundingBox;pub use page::CapturedRequest;pub use page::Element;pub use page::FrameInfo;pub use page::Page;pub use page::PageState;pub use page::ResponseBody;pub use page::TextMatch;pub use session::BrowserSession;pub use session::SessionCookie;pub use stealth::Fingerprint;pub use stealth::HumanSpeed;
Modules§
- browser
- Browser Launcher
- cdp
- Minimal CDP (Chrome DevTools Protocol) Client
- error
- Error types for eoka
- network
- Network Request Capture
- page
- Page Abstraction
- session
- Session export for browser-to-HTTP-client handoff
- stealth
- Stealth Layer
Structs§
- Stealth
Config - Configuration for stealth features