diff --git a/Cargo.lock b/Cargo.lock index 95d01f6..1a13c81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3055,7 +3055,7 @@ dependencies = [ [[package]] name = "sovereign-browser" -version = "0.0.1" +version = "0.0.2" dependencies = [ "anyhow", "base64", diff --git a/Cargo.toml b/Cargo.toml index a6951d7..a97e4f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ members = [ [package] name = "sovereign-browser" -version = "0.0.2" +version = "0.0.3" edition = "2021" license = "MIT" description = "A Linux x86 web browser built on WebKitGTK with Nostr identity" diff --git a/README.md b/README.md new file mode 100644 index 0000000..8a6ae4f --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# 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 diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 diff --git a/src/version.rs b/src/version.rs index 7ef5936..4aff79f 100644 --- a/src/version.rs +++ b/src/version.rs @@ -1,7 +1,7 @@ //! Version information for sovereign_browser /// The current version of sovereign_browser (with leading 'v'). -pub const VERSION: &str = "v0.0.2"; +pub const VERSION: &str = "v0.0.3"; /// Major version number. pub const VERSION_MAJOR: u32 = 0; @@ -10,4 +10,4 @@ pub const VERSION_MAJOR: u32 = 0; pub const VERSION_MINOR: u32 = 0; /// Patch version number. -pub const VERSION_PATCH: u32 = 2; +pub const VERSION_PATCH: u32 = 3;