Skip to content

senonide/rambler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rambler Browser

Rambler Browser Logo

License: GPL v3 Zig GTK WebKit

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.

📋 Requirements

System Dependencies

  • 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

Development Requirements

  • Zig: 0.16.0-dev.195 or compatible
  • pkg-config: For finding system libraries

Install Dependencies

Ubuntu/Debian

sudo apt update
sudo apt install build-essential pkg-config \
  libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-dev

Fedora

sudo dnf install gcc pkg-config gtk4-devel \
  libadwaita-devel webkitgtk6.0-devel

Arch Linux

sudo pacman -S base-devel pkg-config gtk4 \
  libadwaita webkitgtk-6.0

🔧 Installation

Build from Source

  1. Clone the repository

    git clone https://github.com/senonide/rambler.git
    cd rambler
  2. Build the project

    zig build
  3. Run Rambler

    zig build run

🚀 Usage

Basic Navigation

  • New Tab: Ctrl+T or click the + button
  • Close Tab: Ctrl+W or click the × on the tab
  • Navigate: Use Back/Forward buttons or Alt+←/Alt+→
  • Reload: Ctrl+R or F5
  • Focus URL Bar: Ctrl+L

First Launch

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.

Data Storage

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

Key Components

  • 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

🤝 Contributing

Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

Getting Started

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes following our coding standards
  4. Test your changes: zig build test
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to your fork: git push origin feature/amazing-feature
  7. Open a Pull Request

Coding Guidelines

  • 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

🗺️ Roadmap

Version 0.1.0 (Current)

  • Basic tabbed browsing
  • Navigation controls
  • WebKit integration
  • GNOME/Libadwaita UI
  • Memory optimization
  • Persistent storage

Version 0.2.0

  • Bookmark management
  • History system
  • Download manager
  • Keyboard shortcuts customization
  • Search engine configuration

Version 0.3.0

  • Sync capabilities
  • Advanced privacy controls

📄 License

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.

About

A WebKit based browser built in Zig for Gnome

Topics

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages