csd4ni3l-browser banner

csd4ni3l-browser

2 devlogs
11h 51m 57s

Updated Project: I wrote a browser from scratch by the browser.engineering tutorial in python & Arcade. But i am currently learning Rust, so you know what that means… Rewrite it in Rust!

This project uses AI

Code completion was not used, but since im a Rust beginner, AI assistance with chat was, using ChatGPT and Github Copilot with Claude Sonnet 4.5. I mostly used AI on code where i could absolutely not code it myself or when when asking about Rust and module specifics. Sometimes when i needed really boring stuff like String::from 30 times, then i used AI but that didnt happen a lot of times.

Demo Repository

Loading README...

csd4ni3l

Day 3 (very late devlog lmao)
I fixed the html & css cache, and i now use base64 for cache filenames. The app now automatically updates tab titles, stores the old url & reverts it to the current tab’s url when needed. I made the browser work by requesting the url given on enter, and i added the css/html parse and receive. I fixed the Host header not changing for css urls (which wasnt fixed in the previous Python version). and i am now using better & less complicatedJSON serialization for css cache. Other than that, I improved the renderer’s boilerplate code, which will be the hardest part. I havent worked for a bit of time on this.

Attachment
0
csd4ni3l

Day 1 & 2
Basically I started working on moving the whole code to Rust, by creating a new git branch, moving all code to a python folder and then initializing a Bevy project. The main UI was pretty easy, but then came the HTML parser and Connection, which was a lot harder to port. mutability, references, borrowing makes it so much harder in Rust than in Python. Of course, it’s not impossible but its more complicated. I hope it’s gonna be worth it for the learning & the performance. Also, i figured out that bevy_egui might not work well for this, so i might have to use something else, but we will see… I am currently working on the html & css cache and porting the full connection & html parsing mechanisms, and then comes rendering, which is probably gonna be the hardest part.

Attachment
0