A fast, lightweight web browser for the GNOME desktop, built with modern web standards in mind. Rambler combines the efficiency of Zig with the power of WebKit to deliver a seamless browsing experience that integrates beautifully with your GNOME workflow.
Warning
This project is an experimental browser and is not currently considered stable for day-to-day production use.
- OS: Linux (GNOME desktop recommended)
- GTK: 4.0 or later
- Libadwaita: 1.0 or later
- WebKitGTK: 6.0 or later
- GLib: 2.0 or later
- Zig: 0.16.0-dev.195 or compatible
- pkg-config: For finding system libraries
sudo apt update
sudo apt install build-essential pkg-config \
libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-devsudo dnf install gcc pkg-config gtk4-devel \
libadwaita-devel webkitgtk6.0-develsudo pacman -S base-devel pkg-config gtk4 \
libadwaita webkitgtk-6.0-
Clone the repository
git clone https://github.com/senonide/rambler.git cd rambler -
Build the project
zig build
-
Run Rambler
zig build run
- New Tab:
Ctrl+Tor click the+button - Close Tab:
Ctrl+Wor click the×on the tab - Navigate: Use Back/Forward buttons or
Alt+←/Alt+→ - Reload:
Ctrl+RorF5 - Focus URL Bar:
Ctrl+L
Rambler starts with a welcome page that helps you get started. Simply enter a URL or search term in the address bar to begin browsing.
Rambler stores its data in a .rambler directory in your current working directory. This includes:
- Cookies and session data
- Local storage for websites
- Cache for faster loading
- Settings and preferences
- BrowserApplication: Manages app lifecycle and GTK integration
- BrowserWindow: Main UI window with navigation controls
- TabData: Individual tab management with WebKit WebViews
- StorageManager: Handles persistent data and WebKit context
- Logger: Centralized logging for debugging and monitoring
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following our coding standards
- Test your changes:
zig build test - Commit your changes:
git commit -m 'Add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Zig's style conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and small
- Write tests for new functionality
- Follow GNOME HIG for UI changes
- Basic tabbed browsing
- Navigation controls
- WebKit integration
- GNOME/Libadwaita UI
- Memory optimization
- Persistent storage
- Bookmark management
- History system
- Download manager
- Keyboard shortcuts customization
- Search engine configuration
- Sync capabilities
- Advanced privacy controls
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
The GPL v3 ensures that Rambler remains free and open source software, and that any derivatives must also be open source.
