Skip to content

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blaze Browser

Fast. Private. Zero bloat.
A Rust-native, ad-free macOS browser built for people who want speed without compromise.



Why Blaze?

Most browsers are Chromium wrappers β€” they carry Google's rendering engine, telemetry hooks, and memory overhead whether you want them or not. Blaze takes a different path:

  • No Chromium. The core is pure Rust. The macOS shell uses Apple's WebKit as the rendering backend today, isolated behind a clean abstraction layer β€” and a real Servo v0.4.0 embedding already implements the same interface behind a feature flag, so the fully independent Rust engine can be swapped in without touching a single line of UI code.
  • No ads, ever. A Brave-style Rust adblock engine runs natively in-process. Lists compile to a binary trie at startup β€” filter matching is sub-microsecond (p99 < 1 Β΅s in benchmarks) with zero network round-trips.
  • No telemetry, period. Zero data collection, zero crash reporting, zero analytics. What you browse stays on your device.
  • Memory efficient. Tabs you haven't visited in a while are automatically suspended, freeing their memory. Background tabs cost almost nothing.

Features

  • πŸ”₯ Sub-microsecond ad blocking - Rust-native filter engine, no extension overhead
  • πŸͺΆ Lightweight - Tab suspension frees memory automatically
  • 🚫 Zero telemetry - No data ever leaves your device
  • πŸŒ™ Dark & light mode - Follows macOS system appearance instantly
  • πŸ“‘ Full tab management - Create, close, pin, mute, reorder, move between windows
  • πŸ”– Bookmarks - Toolbar, bookmarks bar, and full manager
  • ⬇️ Downloads - Native download engine with pause/resume/progress
  • 🎬 Video & audio - YouTube, streaming sites, and any HTML5 media
  • πŸ”’ Per-site ad-block exceptions - Allowlist individual domains with one click
  • πŸ—‚ Session restore - All windows and tabs come back exactly where you left them
  • ♾️ Multiple windows - Drag tabs out to new windows, merge them back
  • πŸ” Smart address bar - URLs, searches, and bookmarks in one field

The Web Engine Abstraction

Blaze is not tied to any single rendering engine. The Rust core defines a single WebEngine trait:

pub trait WebEngine: Send {
    fn navigate(&mut self, url: &Url);
    fn go_back(&mut self);
    fn go_forward(&mut self);
    fn reload(&mut self);
    fn stop(&mut self);
    fn apply_blocking(&mut self, artifacts: BlockingArtifacts);
    fn set_muted(&mut self, muted: bool);
    fn suspend(&mut self);
    fn resume(&mut self, url: &Url);
    fn poll_title(&self) -> Option<String>;
}

Today, WebKitBackend implements this trait using Apple's WKWebView β€” giving full compatibility with every website while the native engine matures. Alongside it, EmbeddedServoEngine implements the same trait on a real embedded Servo v0.4.0 (blaze-engine-servo --features servo): each tab runs Servo on a dedicated engine thread with headless rendering, native request interception wired straight into the ad-block matcher, scriptlet/cosmetic-filter injection, and popup denial. Switching engines is a single line of configuration. The Swift UI, the tab manager, the ad blocker, and the download engine have no knowledge of which backend is running.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  macOS SwiftUI Shell               β”‚
β”‚  TabStrip Β· Toolbar Β· Bookmarks Β· Settings         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚  FFI (uniffi / Swift)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              blaze-core  (Rust)                    β”‚
β”‚  Tab manager Β· Session Β· Downloads Β· Events        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚                       β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€-▼──────────────────┐
β”‚  WebKitBackend      β”‚  β”‚  EmbeddedServoEngine       β”‚
β”‚  WKWebView via FFI  β”‚  β”‚  Servo v0.4.0, pure Rust   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  └───────────────────────────-β”˜
           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  blaze-adblock  (Rust)                              β”‚
β”‚  Brave-compatible filter engine Β· < 1 Β΅s p99        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Architecture at a Glance

blaze-browser/
β”œβ”€β”€ crates/
β”‚   β”œβ”€β”€ blaze-core        # Tab, window, session, downloads, bookmarks
β”‚   β”œβ”€β”€ blaze-engine      # WebEngine trait + shared types
β”‚   β”œβ”€β”€ blaze-engine-servo# Servo v0.4.0 embedding (--features servo) + simulated engine for parity tests
β”‚   β”œβ”€β”€ blaze-adblock     # Brave-style filter engine
β”‚   β”œβ”€β”€ blaze-net         # HTTP, range requests, download worker
β”‚   β”œβ”€β”€ blaze-storage     # SQLite profile: history, bookmarks, settings
β”‚   β”œβ”€β”€ blaze-media       # Audio/video state tracking
β”‚   └── blaze-ffi         # uniffi bindings for Swift
β”œβ”€β”€ platforms/
β”‚   └── macos/            # SwiftUI shell + XcodeGen project
β”œβ”€β”€ fuzz/                 # cargo-fuzz harnesses
└── scripts/
    └── build-dmg.sh      # Universal (arm64 + x86_64) DMG builder

Performance

Metric Result Gate
Ad filter match (p99) 917 ns < 100 Β΅s
Filter engine cache load 3.5 ms β€”
Cold browser start < 500 ms β€”
10-page RSS growth < 64 MiB β€”

Benchmarks run with BLAZE_PERF_GATE=1 cargo bench -p blaze-adblock.


Install

  1. Download the latest Blaze-x.x.x.dmg from Releases.
  2. Open the DMG, drag Blaze.app to Applications.
  3. Right-click β†’ Open on first launch (unsigned build β€” Gatekeeper will ask once).
  4. If the Dock icon looks stale after update, run killall Dock.

Blaze is currently macOS 13+ only (Apple Silicon and Intel, universal binary). Linux, Windows, Android, and iOS platform stubs are in the architecture but not yet wired up.


Contributing

Pull requests are welcome. The toolchain is pinned to Rust 1.95.0 (the version Servo v0.4.0 is built with) via rust-toolchain.toml β€” rustup picks it up automatically. Please run cargo clippy --workspace --all-targets -- -D warnings and cargo test --workspace before opening a PR. The CI pipeline also runs AddressSanitizer, ThreadSanitizer, and fuzz smoke tests on every push.


License

MIT β€” see LICENSE.

About

πŸ”₯ Blaze Browser β€” Simple, fast, and ad-free. Built for human-first browsing with zero AI distraction and total privacy.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages