| Crates.io | rfheadless |
| lib.rs | rfheadless |
| version | 0.1.0 |
| created_at | 2026-01-15 19:45:38.683705+00 |
| updated_at | 2026-01-15 19:45:38.683705+00 |
| description | A headless browsing engine API for Rust |
| homepage | |
| repository | https://github.com/idiotstudios/rfheadless |
| max_upload_size | |
| id | 2046419 |
| size | 66,403,775 |
A headless browsing engine API for Rust providing a compact, testable, and deterministic environment for loading pages, running JavaScript, and extracting rendered values without always requiring Chrome.
scraper for HTML/CSS extraction.querySelector, dataset, classList, innerHTML, etc.).getComputedStyle with value normalization (colors, simple units).--features cdp.Results recorded on an i7 4770K CPU with 16GB DDR3 RAM
Test on your system with:
cargo bench --features rfengine
[latency_percentiles] samples=[7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 11, 12, 12, 16, 18, 19] [latency_percentiles] p50=8ms p95=18ms p99=19ms (threshold=200ms) [ perf record: Woken up 129 times to write data ] [ perf record: Captured and wrote 35.258 MB perf.data (572 samples) ]
use rfheadless::{Engine, EngineConfig};
let mut engine = rfheadless::new_engine(EngineConfig::default())?;
engine.load_url("https://example.com")?;
let snapshot = engine.render_text_snapshot()?;
println!("Title: {}", snapshot.title);
See examples/ for runnable demonstrations.
If you do wanna conrtibute (apprciated) then feel free to create issues or pull requests! I love the support. We mainly focusing on getting the engine to work the best in the shortest amunt of time but other help in the engine is good to!
Licensed under either of:
You may choose either license for your contribution.