-
-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
bad-antics edited this page Feb 11, 2026
·
1 revision
Marshall follows a multi-process architecture inspired by Chromium but implemented in Rust for memory safety.
┌─────────────────────────────────┐
│ Main Process │
│ ┌──────┐ ┌────────┐ ┌──────┐ │
│ │ UI │ │ Router │ │Config│ │
│ │Engine│ │ │ │ │ │
│ └──┬───┘ └───┬────┘ └──────┘ │
│ │ │ │
├─────┼─────────┼─────────────────┤
│ │ IPC │ │
├─────┼─────────┼─────────────────┤
│ ┌──┴───┐ ┌───┴────┐ ┌──────┐ │
│ │Tab 1 │ │ Tab 2 │ │Tab N │ │
│ │WebKit│ │ WebKit │ │WebKit│ │
│ └──────┘ └────────┘ └──────┘ │
│ Renderer Processes │
└─────────────────────────────────┘
- Tab bar with drag-and-drop
- URL bar with autocomplete
- Sidebar panels (bookmarks, history, AI)
- Settings dialog
- EasyList/EasyPrivacy filter parsing
- WebKit content rule compilation
- Real-time request interception
- ~70,000 rules loaded at startup
- SOCKS5 proxy to local Tor daemon
- Circuit display in toolbar
- New identity per-tab option
-
.onionaddress support
- Separate WebKit process per tab
- No shared cookies between tabs
- Independent JavaScript contexts
- Memory limit per renderer
User Input → URL Bar → Router → Content Blocker → WebKit Renderer → Display
↓
Block/Allow Decision
↓
Privacy Dashboard Update