Skip to content

Latest commit

Β 

History

8 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 so a fully independent Servo-based 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 + Sync {
    fn navigate(&self, url: &str);
    fn reload(&self);
    fn go_back(&self);
    fn go_forward(&self);
    fn evaluate_script(&self, js: &str);
    fn state(&self) -> EngineState;
}

Today, WebKitBackend implements this trait using Apple's WKWebView β€” giving full compatibility with every website while the native engine matures. Tomorrow, ServoEngine implements the same trait using Mozilla's Servo renderer in pure Rust. 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      β”‚  β”‚  ServoEngine (in progress) β”‚
β”‚  WKWebView via FFI  β”‚  β”‚  Rust-native renderer      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  └───────────────────────────-β”˜
           β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  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 renderer stub (engine-parity tests pass)
β”‚   β”œβ”€β”€ 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. 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