v2.48.2

charmbracelet/crushv2.48.2Mar 25, 2026by github-actions[bot]

AI Summary

Adds parallel crawl backends feature allowing users to race multiple browser engines against each other, with the best HTML result winning.

Key Highlights

  • Parallel Crawl Backends for racing browser engines
  • Support for LightPanda, Servo, and custom backends
  • Zero overhead when disabled
  • Anti-fingerprint jitter and auto-disable on failures
  • Full network interception parity with Chrome

Full Release Notes

Race alternative browser engines alongside your primary crawl. Best HTML wins.

```rust
use spider::configuration::{BackendEndpoint, BackendEngine, ParallelBackendsConfig};

let mut website = Website::new("https://example.com");
website.configuration.parallel_backends = Some(ParallelBackendsConfig {
    backends: vec![BackendEndpoint {
        engine: BackendEngine::LightPanda,
        endpoint: Some("ws://127.0.0.1:9222".to_string()),
        binary_path: None,
        protocol: None,
    }],
    ..Default::default()
});
website.crawl().await;
// page.backend_source → "primary" | "lightpanda" | "servo" | "custom"
```

Features: `lightpanda`, `servo`, `parallel_backends_full`, custom backends via `BackendEngine::Custom`.

Zero overhead when disabled, anti-fingerprint jitter, auto-disable on failures, custom quality validator, full network interception parity with Chrome.