Skip to content

aaralh/theBrowser

Repository files navigation

theBrowser ⚡

build

Browser made completely (or as much as possible) with Python and complies with the HTML spec.

Setup dev environment

  1. Check that you have Python 3.8 or newer installed
  2. Clone the repo from git git clone https://github.com/aaralh/theBrowser.git
  3. Make python virtual env with python3 -m venv theBrowser and activate it source theBrowser/bin/activate
  4. Install dependencies by running pip install -r requirements.txt
  5. To run mypy and unit tests, execute ./test.sh
  6. Happy hacking! :)

Features

Bolded items with 🚧 are currently in WIP. Items marked with :shipit: are working but may be partially lacking, hence not considerable as finished yet. Completed features are marked with 🚀 List will be extended in more detail on the go.

  • 📝 HTML Parsing:shipit:
    • HTML tokenizer:shipit:
    • HTML parser:shipit:
  • 📝 CSS Parsing:shipit:
    • CSS tokenizer:shipit:
    • CSS parser :shipit:
  • 📐 Style
    • CSS cascade 🚧
    • Style computation 🚧
    • Render tree 🚧
    • Selector matching 🚧
  • 🎴 Layout process
    • Layouts
      • Table:shipit:
      • Block🚧
      • Flex🚧
      • Grid🚧
  • 🎨 Rendering🚧
  • 🌍 Networking🚧
  • 🖼️ Media🚧
  • JavaScript

Current state

Acid1 test

theBrowser: image

Reference (MS Edge):

image

About

Browser made completely(or as much as possible) with Python

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages