Browda is a cross-platform browser user data parsing library built with Rust, providing a unified and standardized read-only access interface.
Mainstream desktop browsers have significant differences in storage paths, data structures, and security mechanisms across different operating systems, leading to extremely high engineering complexity for cross-platform data parsing.
Browda provides low-level abstraction and encapsulation for these aspects, shielding callers from the underlying differences and details. It exposes a unified and consistent data access interface, allowing developers to ignore the heterogeneity of specific browser implementations.
This project is designed for read-only parsing and access of browser user data within the current user's environment.
- Read-Only Principle: It strictly prohibits modifying, writing to, or interfering with any browser data files.
- Local Scope: It only supports accessing data within the current user's directory.
- Structured Output: It provides standardized results through a unified data model.
- Cross-Platform: Supports Windows, macOS, and Linux.
- Parsing Scope: Supports core data types including Cookies, browsing history, bookmarks, download records, and extension lists.
- Browser Abstraction Layer: Unifies the encapsulation of differences in data structures and security mechanisms across various browsers.
- Memory Safe Implementation: Built with Rust.
- Multi-Language Bindings: Supports C/C++, Go, Python, Node.js, Java, and other languages via FFI.
- Standardized Model: Defines unified data structures based on Protobuf.
- Modular Architecture: Decouples core parsing logic, the FFI layer, and the SDK layer.
browda-rs/
├── crates/
│ ├── browda # Core browser data parsing logic
│ ├── browda-ffi # FFI interface layer
│ ├── browda-proto # Protobuf generated code
│ └── browda-log # Logging module
├── proto/ # Protocol definitions
├── sdks/ # Multi-language bindings
├── examples/ # Usage examples
└── docs/ # Development documentation
MIT License