59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
# sovereign_browser (Rust)
|
|
|
|
A Linux x86 web browser built on **WebKitGTK** and **Rust**, designed around
|
|
**sovereign identity** instead of the traditional web's permissioned
|
|
infrastructure. Identity, messaging, and relay operations are handled through
|
|
[Nostr](https://github.com/nostr-protocol/nostr), powered by the local
|
|
`rust_core_lib` workspace crates.
|
|
|
|
> **Note:** This project is a **port to Rust** from the original C99 project
|
|
> [`Sovereign_Browser`](https://github.com/sovereign-browser/Sovereign_Browser).
|
|
> The Nostr functionality previously provided by the C library
|
|
> `nostr_core_lib` is now provided by the Rust workspace crates
|
|
> (`nostr_core`, `nostr_relay`, `nostr_nips`, `nostr_signer`,
|
|
> `nostr_services`).
|
|
|
|
## Features
|
|
|
|
- WebKitGTK-based browser shell with tabs, bookmarks, history, and search
|
|
- Sovereign identity via Nostr keys (local + nsigner support)
|
|
- Custom `nostr://` and `local://` URL schemes
|
|
- Tor integration (`tor_control` + `tor_scheme`)
|
|
- Built-in agent system: chat, conversations, skills, tools, MCP, LLM bridge,
|
|
and an agent server
|
|
- Site downloader and offline content embedding
|
|
- FIPS / process / profile / settings management UIs
|
|
|
|
## Architecture
|
|
|
|
The browser is organized into the following modules (see [`src/lib.rs`](src/lib.rs)):
|
|
|
|
- **Browser shell** — [`tab_manager`](src/tab_manager.rs), [`menu`](src/menu.rs),
|
|
[`session`](src/session.rs), [`web_context`](src/web_context.rs),
|
|
[`webkit_data`](src/webkit_data.rs)
|
|
- **Nostr integration** — [`nostr_bridge`](src/nostr_bridge.rs),
|
|
[`nostr_inject`](src/nostr_inject.rs), [`nostr_scheme`](src/nostr_scheme.rs),
|
|
[`nostr_url`](src/nostr_url.rs), [`relay_fetch`](src/relay_fetch.rs),
|
|
[`key_store`](src/key_store.rs)
|
|
- **Agent system** — [`agent_loop`](src/agent_loop.rs),
|
|
[`agent_chat`](src/agent_chat.rs), [`agent_conversations`](src/agent_conversations.rs),
|
|
[`agent_skills`](src/agent_skills.rs), [`agent_tools`](src/agent_tools.rs),
|
|
[`agent_mcp`](src/agent_mcp.rs), [`agent_server`](src/agent_server.rs),
|
|
[`agent_llm`](src/agent_llm.rs)
|
|
- **Services** — [`tor_control`](src/tor_control.rs),
|
|
[`net_services`](src/net_services.rs), [`site_downloader`](src/site_downloader.rs),
|
|
[`settings_sync`](src/settings_sync.rs), [`fips_control`](src/fips_control.rs)
|
|
|
|
## Building
|
|
|
|
Requirements: Rust (stable), GTK3, WebKitGTK 4.1, and the local
|
|
`rust_core_lib` workspace at `/home/user/lt/nostr_core_lib_rust`.
|
|
|
|
```sh
|
|
cargo build --release
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|