Skip to content

embeddedos-org/eBrowser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

69 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

CI CodeQL OpenSSF Scorecard Release License

eBrowser Logo

eBrowser v2.0

The Most Secure, Fastest, and Most Extensible Lightweight Browser

CI Release Docker Release GHCR Image Latest Release License C11 Security Extensions


Why eBrowser?

Feature Chrome Firefox Brave Tor eBrowser
Memory Usage ~300MB/tab ~200MB/tab ~250MB/tab ~150MB/tab <5MB/tab
Process Sandbox Yes Yes Yes Yes Yes (seccomp+ns)
Memory Safety Partial Partial Partial No Full (canary+guard+UAF)
Anti-Fingerprint No Basic Basic Strong Tor-level + canvas noise
Tracker Blocker No Enhanced Shields Yes Built-in (EasyList)
DNS Encryption DoH opt-in DoH opt-in DoH Tor DoH default + DNSSEC
App Firewall No No No No Full (CIDR+rate+wildcard)
Extension Support Chrome Web Store AMO Chrome Limited WebExtensions V3
W^X Enforcement Yes Partial Yes No Full
HTTPS-Only Opt-in Opt-in Opt-in Yes Default
Embedded/IoT No No No No Native (LVGL)
Code Size ~35M lines ~20M lines ~35M lines ~20M lines <25K lines

Architecture

+------------------------------------------------------------------+
|                        eBrowser v2.0                              |
+------------------------------------------------------------------+
|  UI Layer          | Tab Manager | Bookmarks | Downloads | DevTools|
|  (LVGL-based)      | Reader Mode | Theme Engine | Split View      |
+--------------------+----------------------------------------------+
|  Extension Engine  | WebExtensions V3 | Content Scripts | Storage |
|                    | Alarms | Context Menus | WebRequest API       |
+--------------------+----------------------------------------------+
|  Privacy Engine    | Tracker Blocker | URL Cleaner | Cookie Policy |
|                    | Referrer Strip | GPC/DNT | Incognito/Tor Mode |
+--------------------+----------------------------------------------+
|  Security Fortress | Sandbox (seccomp/ns) | Memory Safety         |
|                    | App Firewall | Anti-Fingerprint | W^X        |
+--------------------+----------------------------------------------+
|  Performance       | Thread Pool | LRU Cache | HTTP/2 Mux         |
|                    | Prefetcher | Brotli/Zstd | Profiling          |
+--------------------+----------------------------------------------+
|  Network           | HTTP/HTTPS | TLS 1.3 | DoH/DNSSEC | CORS    |
+--------------------+----------------------------------------------+
|  Engine            | HTML5 Parser | CSS3 | DOM | Layout | JS      |
|                    | SVG | GPU Renderer                           |
+--------------------+----------------------------------------------+
|  Crypto            | SHA-256 | AES-128 | HMAC | PBKDF2 | TLS 1.3 |
+--------------------+----------------------------------------------+
|  Platform          | Linux | macOS | Windows | EmbeddedOS | Web   |
+------------------------------------------------------------------+

Security Features (Unhackable Design)

1. Multi-Layer Process Sandbox

  • seccomp-BPF syscall filtering - only whitelisted syscalls allowed
  • Linux namespaces - PID, network, mount, user, IPC isolation
  • Capability dropping - minimal privilege principle
  • W^X enforcement - no memory region is both writable and executable
  • Guard pages - memory access violations immediately caught

2. Hardened Memory Allocator

  • Canary values (0xDEADC0DE) before/after every allocation
  • Quarantine zone - freed memory held to detect use-after-free
  • Double-free detection with source location tracking
  • Memory zeroing on free - prevents data leakage
  • Pool allocator - zero-fragmentation for hot paths
  • Allocation tracking with file:line for every malloc

3. Application-Level Firewall

  • Domain blocklist with wildcard matching (*.tracker.com)
  • CIDR IP filtering (192.168.0.0/16)
  • Rate limiting per domain (requests/sec, requests/min)
  • HTTPS-only mode - automatic HTTPβ†’HTTPS upgrade
  • Non-standard port blocking
  • Blocklist file loading (hosts format compatible)

4. Anti-Fingerprinting Engine

  • Canvas noise injection - random bits per pixel channel
  • WebGL spoofing - fake vendor/renderer strings
  • Font enumeration restriction - Tor Browser font list
  • Timing attack mitigation - jittered performance.now()
  • Screen normalization - report standard resolution
  • User-Agent randomization per session
  • WebRTC IP leak prevention
  • Battery/Bluetooth/USB API blocking
  • 4 protection levels: Off β†’ Standard β†’ Strict β†’ Tor-like

5. DNS Security

  • DNS-over-HTTPS (DoH) enabled by default
  • DNSSEC validation
  • DNS rebinding protection - blocks private IP responses
  • DNS cache with TTL management
  • Multiple DoH providers (Cloudflare, Google)

6. Content Security

  • CSP enforcement with all directives
  • XSS sanitizer with 7 threat categories
  • CORS validation
  • Mixed content blocking
  • HSTS support
  • Cookie security (SameSite, HttpOnly, Secure flags)

7. Compiler Hardening

  • -fstack-protector-strong - stack buffer overflow protection
  • -D_FORTIFY_SOURCE=2 - runtime buffer overflow checks
  • -fPIE + -pie - Position Independent Executable (ASLR)
  • -Wl,-z,relro,-z,now - Full RELRO (GOT hardening)
  • -Wl,-z,noexecstack - Non-executable stack

Extension Support (WebExtensions V3 Compatible)

eBrowser supports Chrome/Firefox-compatible extensions via Manifest V3:

Supported APIs

API Status Description
storage βœ… Full Local, sync, session storage
tabs βœ… Full Create, query, update, remove tabs
webRequest βœ… Full Intercept/modify/block requests
contextMenus βœ… Full Custom right-click menu items
alarms βœ… Full Periodic and one-shot timers
notifications βœ… Full Desktop notifications
bookmarks βœ… Full Bookmark CRUD operations
downloads βœ… Full Download management
cookies βœ… Full Cookie read/write
history βœ… Full Browsing history access
scripting βœ… Full Programmatic script injection
runtime βœ… Full Messaging, lifecycle events
privacy βœ… Full Privacy settings control
proxy βœ… Full Proxy configuration
devtools βœ… Full DevTools panel extensions
sidePanel βœ… Full Side panel UI
nativeMessaging βœ… Full Native app communication

Extension Features

  • Manifest V3 parsing with full validation
  • Content script injection with URL match patterns (<all_urls>, *://*.example.com/*)
  • Background service workers
  • Per-extension sandboxing with capability-based permissions
  • Extension-to-extension messaging (ports + one-shot)
  • WebRequest interception for ad blockers, privacy tools
  • Hot-reload for extension development
  • Blocklist-based extension security

Performance

Thread Pool

  • Configurable worker threads (auto-detect CPU cores)
  • Priority-based task queue
  • Parallel HTML parsing, CSS computation, layout, rendering

LRU Cache

  • Configurable max entries and memory limit
  • TTL-based expiration
  • O(1) get/put with doubly-linked list

HTTP/2 Multiplexing

  • Multiple concurrent streams over single connection
  • Header compression (HPACK)
  • Stream prioritization

Resource Prefetching

  • Predictive prefetch of linked resources
  • Priority-based queue with deduplication

Compression

  • Brotli, Zstd, Gzip, Deflate support
  • Automatic content-encoding detection

Privacy Engine

Tracker & Ad Blocker (Built-in, rivals uBlock Origin)

  • EasyList/EasyPrivacy compatible filter syntax
  • Cosmetic filtering (element hiding via CSS selectors)
  • Domain anchoring (||tracker.com^)
  • Resource type filtering (script, image, XHR, etc.)
  • Exception rules (@@||allowed.com)
  • Per-domain rules with include/exclude
  • CNAME uncloaking support

Privacy Modes

Mode Cookies Referrer Tracking Params Storage
Normal Block 3P Origin only Stripped Persistent
Incognito Delete on close Origin only Stripped Session only
Tor Mode Block all None Stripped Partitioned

URL Cleaning

Automatically strips 25+ tracking parameters: utm_source, utm_medium, utm_campaign, fbclid, gclid, msclkid, twclid, igshid, etc.

Privacy Headers

  • Do Not Track (DNT) header injection
  • Global Privacy Control (GPC) header
  • First-Party Isolation - storage partitioned by origin

Advanced UI Features

Tab Manager

  • Tab groups with color coding and naming
  • Split view - side-by-side tab comparison
  • Tab pinning - persistent tabs
  • Tab hibernation - auto-sleep inactive tabs (saves memory)
  • Tab search - find tabs by title/URL
  • Recently closed - reopen closed tabs
  • Tab duplication
  • Per-tab muting and zoom control

Bookmarks

  • Folder hierarchy with drag-and-drop
  • Tag-based organization
  • Full-text search across titles and URLs
  • HTML export/import (Netscape bookmark format)
  • Visit tracking and frequency sorting

Download Manager

  • Parallel downloads with configurable concurrency
  • Pause/Resume support
  • SHA-256 verification
  • Auto-retry on failure
  • Progress tracking with speed calculation

Developer Tools

  • Console - log, warn, error, info, debug levels
  • Network monitor - request/response timing, sizes, caching
  • DOM inspector - node highlighting and inspection
  • Performance profiler - page load timing breakdown
  • Preserve log across navigations

Reader Mode

  • Article extraction (Readability algorithm)
  • 3 themes: Light, Dark, Sepia
  • Customizable font size, line height, max width
  • Reading time estimation
  • Word count display

Theme Engine

  • Light/Dark/Auto mode (follows system preference)
  • Custom accent colors
  • High contrast mode for accessibility
  • Reduced motion mode
  • Force dark mode on all websites
  • Custom CSS injection

Quick Start

git clone --recursive https://github.com/embeddedos-org/eBrowser.git
cd eBrowser
chmod +x setup.sh
./setup.sh                        # builds and opens the browser
./setup.sh https://example.com    # opens directly to a URL

Windows:

git clone --recursive https://github.com/embeddedos-org/eBrowser.git
cd eBrowser
setup.bat

Project Structure

eBrowser/
β”œβ”€β”€ include/ebrowser/           # Public API headers (37 files)
β”‚   β”œβ”€β”€ sandbox.h               # Process sandboxing
β”‚   β”œβ”€β”€ memory_safety.h         # Hardened allocator
β”‚   β”œβ”€β”€ firewall.h              # Application firewall
β”‚   β”œβ”€β”€ anti_fingerprint.h      # Anti-fingerprinting
β”‚   β”œβ”€β”€ dns_security.h          # DoH/DNSSEC
β”‚   β”œβ”€β”€ extension.h             # WebExtensions V3
β”‚   β”œβ”€β”€ privacy.h               # Privacy engine
β”‚   β”œβ”€β”€ tracker_blocker.h       # Ad/tracker blocker
β”‚   β”œβ”€β”€ perf.h                  # Performance engine
β”‚   β”œβ”€β”€ tab_manager.h           # Advanced tabs
β”‚   β”œβ”€β”€ bookmark.h              # Bookmarks
β”‚   β”œβ”€β”€ download.h              # Downloads
β”‚   β”œβ”€β”€ devtools.h              # Developer tools
β”‚   β”œβ”€β”€ reader_mode.h           # Reader mode
β”‚   β”œβ”€β”€ theme.h                 # Theme engine
β”‚   β”œβ”€β”€ security.h              # CSP/XSS/CORS
β”‚   β”œβ”€β”€ crypto.h                # Cryptography
β”‚   β”œβ”€β”€ tls.h                   # TLS 1.2/1.3
β”‚   β”œβ”€β”€ dom.h                   # DOM tree
β”‚   β”œβ”€β”€ html_parser.h           # HTML5 parser
β”‚   β”œβ”€β”€ css_parser.h            # CSS3 parser
β”‚   β”œβ”€β”€ layout.h                # Layout engine
β”‚   β”œβ”€β”€ render.h                # Renderer
β”‚   β”œβ”€β”€ js_engine.h             # JavaScript engine
β”‚   └── ...                     # + 13 more
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ security/               # Security fortress
β”‚   β”‚   β”œβ”€β”€ sandbox/            # seccomp, namespaces, W^X
β”‚   β”‚   β”œβ”€β”€ memory/             # Hardened allocator
β”‚   β”‚   β”œβ”€β”€ firewall/           # App-level firewall
β”‚   β”‚   β”œβ”€β”€ anti_fingerprint/   # Canvas/WebGL/font protection
β”‚   β”‚   β”œβ”€β”€ dns/                # DoH, DNSSEC
β”‚   β”‚   β”œβ”€β”€ security.c          # CSP, XSS, CORS
β”‚   β”‚   β”œβ”€β”€ crypto.c            # SHA-256, AES, HMAC
β”‚   β”‚   └── tls.c               # TLS 1.2/1.3
β”‚   β”œβ”€β”€ extensions/             # WebExtensions V3 engine
β”‚   β”œβ”€β”€ privacy/                # Privacy + tracker blocker
β”‚   β”œβ”€β”€ perf/                   # Thread pool, cache, HTTP/2
β”‚   β”œβ”€β”€ ui/                     # Tab mgr, bookmarks, devtools
β”‚   β”œβ”€β”€ engine/                 # HTML, CSS, DOM, layout, JS
β”‚   β”œβ”€β”€ render/                 # LVGL rendering backend
β”‚   β”œβ”€β”€ network/                # HTTP, URL, cookies, cache
β”‚   β”œβ”€β”€ browser/                # Browser UI shell
β”‚   └── ...
β”œβ”€β”€ tests/                      # Comprehensive test suite
β”œβ”€β”€ docs/                       # Documentation & book
β”œβ”€β”€ enterprise/                 # Docker, Helm, deployment
└── platform/                   # Platform abstraction layer

Comparison with World's Top Browsers

vs Chromium (Chrome, Edge, Opera, Brave)

  • 50,000x smaller codebase (~25K vs ~35M lines)
  • 60x less memory per tab
  • Built-in tracker blocker (no extension needed)
  • Built-in anti-fingerprinting (no extension needed)
  • Built-in application firewall (unique to eBrowser)
  • Hardened memory with canary + quarantine + guard pages
  • Runs on embedded devices (IoT, ARM, RTOS)

vs Firefox

  • 800x smaller codebase
  • 40x less memory per tab
  • Stronger anti-fingerprinting (Tor-level available)
  • Built-in firewall with CIDR + rate limiting
  • Memory safety beyond what Rust provides at runtime

vs Brave

  • Similar privacy features, but lighter
  • More extensible - full WebExtensions V3 API
  • Application firewall - unique security layer
  • Embedded support - runs on microcontrollers

vs Tor Browser

  • Equal anti-fingerprinting protection (Tor-like mode)
  • More features - extensions, tab groups, bookmarks, devtools
  • Faster - no Tor network overhead
  • Smaller footprint

Release model

master is the line of development; every PR lands here. release is a rolling pointer to the latest released vX.Y.Z tag, updated automatically by .github/workflows/sync-release-branch.yml. Tags are immutable.

See embeddedos-org/.github/STANDARDS.md for the org-wide tag scheme, release model, and the compliance frameworks every product targets.

License

MIT License - see LICENSE for details.


eBrowser v2.0 - Built for security. Designed for speed. Made for everyone.


🌐 Web Application (PWA)

The web-app/ directory contains a full-featured Progressive Web App browser built with React 18 + TypeScript + Vite.

Features

  • Multi-tab management with drag-and-drop, pinning, muting, and tab groups
  • Smart address bar with URL/search autocomplete and history suggestions
  • 12 languages with full RTL support (Arabic, Hebrew, etc.)
  • Privacy dashboard β€” tracker/ad blocking, HTTPS-only, DoH, GPC, DNT, anti-fingerprinting
  • Password manager with encrypted storage
  • Notes β€” in-browser note-taking linked to pages
  • Reading List β€” save articles for later
  • GPS & Location β€” full geolocation API integration
  • DevTools β€” Console, Elements, Network, Storage, Sources, Debugger panels
  • Extensions system β€” WebExtensions V3 compatible
  • Command Palette (Ctrl+K) β€” quick command launcher
  • Find in Page (Ctrl+F)
  • Zen Mode β€” distraction-free fullscreen
  • PWA β€” installable, offline-capable, push notifications

Quick Start

cd web-app
npm install
npm run dev        # Development server at http://localhost:5173
npm run build      # Production build to dist/
npm run preview    # Preview production build

Keyboard Shortcuts

Shortcut Action
Ctrl+T New Tab
Ctrl+W Close Tab
Ctrl+Shift+N New Incognito Tab
Ctrl+Tab Next Tab
Ctrl+L / F6 Focus Address Bar
Ctrl+R / F5 Reload
Ctrl+H History
Ctrl+J Downloads
Ctrl+D Bookmark Page
Ctrl+F Find in Page
Ctrl+K Command Palette
F11 Fullscreen
F12 DevTools

Internal Pages

URL Description
about:newtab New Tab with search, top sites, news
ebrowser://settings Full settings
ebrowser://history Browsing history
ebrowser://bookmarks Bookmark manager
ebrowser://downloads Download manager
ebrowser://extensions Extension manager
ebrowser://privacy Privacy dashboard
ebrowser://passwords Password manager
ebrowser://notes Notes
ebrowser://reading-list Reading list
ebrowser://gps GPS & Location

πŸ”Œ Browser Extension (Manifest V3)

The extension/ directory contains a Manifest V3 browser extension compatible with Chrome, Edge, Brave, and Firefox.

Features

  • Tracker blocking β€” 20+ tracker domains via declarativeNetRequest
  • Ad blocking β€” 10+ ad network domains
  • Privacy controls β€” GPC, DNT, HTTPS-only, DoH toggles
  • Custom New Tab β€” Clock, search, quick sites
  • Context menus β€” Save bookmarks, add to reading list, search selection
  • Statistics β€” Trackers/ads blocked counter
  • Keyboard shortcuts β€” Ctrl+Shift+E to open, Ctrl+Shift+P privacy toggle

Installation

Chrome / Edge / Brave:

  1. Go to chrome://extensions
  2. Enable Developer mode
  3. Click Load unpacked β†’ select extension/ folder

Firefox:

  1. Go to about:debugging
  2. Click This Firefox β†’ Load Temporary Add-on
  3. Select extension/manifest.json

πŸ“± Mobile App (React Native + Expo)

The mobile/ directory contains a React Native + Expo mobile browser for Android and iOS.

Features

  • Full WebView browser with multi-tab support
  • Smart address bar with URL/search
  • Native navigation gestures (swipe back/forward)
  • Share integration, geolocation, biometric auth
  • Dark mode (system theme)
  • Push notifications
  • File downloads

Quick Start

cd mobile
npm install
npm start          # Expo development server
npm run android    # Android emulator
npm run ios        # iOS simulator (macOS required)

Production Build (EAS)

npm install -g eas-cli
eas login
eas build --platform android --profile production
eas build --platform ios --profile production
eas submit --platform android
eas submit --platform ios

Web App, Extension, and Mobile App added in v2.0 β€” EmbeddedOS Organization

About

Privacy-first web browser with custom rendering engine

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

Β 
Β 
Β 

Contributors