Expand description
MicroFetch - Ultra-minimal browser engine
§Features
- HTTP Acceleration: HTTP/2 multiplexing, TLS 1.3, Brotli/Zstd compression
- Browser Fingerprinting: Realistic Chrome/Firefox/Safari profiles
- Authentication: 1Password CLI integration, cookie extraction
- JavaScript:
QuickJSengine with minimal DOM (planned)
§Example
use nab::AcceleratedClient;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = AcceleratedClient::new()?;
let html = client.fetch_text("https://example.com").await?;
println!("Fetched {} bytes", html.len());
Ok(())
}Re-exports§
pub use analyze::AnalysisOutput;pub use analyze::AnalysisPipeline;pub use analyze::AnalysisSegment;pub use analyze::PipelineConfig as AnalysisPipelineConfig;pub use annotate::AnalysisConfig as AnnotateAnalysisConfig;pub use annotate::AnalysisOverlay;pub use annotate::AnnotationPipeline;pub use annotate::AssGenerator;pub use annotate::Compositor;pub use annotate::CompositorConfig;pub use annotate::OverlayPosition;pub use annotate::OverlayTrack;pub use annotate::PipelineConfig as AnnotationPipelineConfig;pub use annotate::PipelineResult;pub use annotate::SpeakerLabelOverlay;pub use annotate::SrtGenerator;pub use annotate::SubtitleEntry;pub use annotate::SubtitleFormat;pub use annotate::TranscriptionConfig;pub use api_discovery::ApiDiscovery;pub use api_discovery::ApiEndpoint;pub use arena::ArenaResponse;pub use arena::ResponseArena;pub use arena::ResponseBuffer;pub use arena::StringInterner;pub use auth::CookieSource;pub use auth::Credential;pub use auth::CredentialRetriever;pub use auth::CredentialSource;pub use auth::OnePasswordAuth;pub use auth::OtpCode;pub use auth::OtpRetriever;pub use auth::OtpSource;pub use browser_detect::detect_default_browser;pub use browser_detect::BrowserType;pub use fetch_bridge::inject_fetch_sync;pub use fetch_bridge::FetchClient;pub use fingerprint::chrome_profile;pub use fingerprint::firefox_profile;pub use fingerprint::random_profile;pub use fingerprint::safari_profile;pub use fingerprint::BrowserProfile;pub use form::parse_field_args;pub use form::Form;pub use http3_client::Http3Client;pub use http3_client::Http3Response;pub use http_client::AcceleratedClient;pub use js_engine::JsEngine;pub use login::get_session_dir;pub use login::LoginFlow;pub use login::LoginResult;pub use mfa::detect_mfa_type;pub use mfa::MfaHandler;pub use mfa::MfaResult;pub use mfa::MfaType;pub use mfa::NotificationConfig;pub use prefetch::extract_link_hints;pub use prefetch::EarlyHintLink;pub use prefetch::EarlyHints;pub use prefetch::PrefetchManager;pub use stream::StreamBackend;pub use stream::StreamInfo;pub use stream::StreamProvider;pub use websocket::JsonRpcWebSocket;pub use websocket::WebSocket;pub use websocket::WebSocketMessage;
Modules§
- analyze
- Multimodal video analysis pipeline
- annotate
- Video annotation and overlay system for nab
- api_
discovery - Static API Endpoint Discovery
- arena
- Arena Allocator for Response Buffering
- auth
- Authentication Module
- browser_
detect - Browser Detection
- content
- Content-type-aware response conversion.
- fetch_
bridge - Fetch API Bridge - Bridges JavaScript
fetch()to Rust reqwest - fingerprint
- Browser Fingerprint Spoofing
- form
- Form parsing and submission
- http3_
client - HTTP/3 + QUIC Client
- http_
client - High-Performance HTTP Client
- js_
engine - JavaScript Engine Module (rquickjs)
- login
- Auto-login orchestration
- mfa
- Multi-Factor Authentication Flow Handler
- plugin
- External plugin system for custom
SiteProviderimplementations. - prefetch
- Prefetch & Early Hints (103)
- site
- Site-specific content extraction.
- stream
- Streaming media support for nab.
- websocket
- WebSocket Client with TLS
Constants§
- VERSION
- Version of nab