Current status of the project - september 23 #48
Replies: 10 comments 5 replies
-
What about css? |
Beta Was this translation helpful? Give feedback.
-
Hey, can I try my hand at a simple text based user-agent? Would a first version that just prints the text inside the nodes be useful? |
Beta Was this translation helpful? Give feedback.
-
Woah, a damm browser in rust? That sounds pretty exciting! |
Beta Was this translation helpful? Give feedback.
-
What a coincidence, I've been thinking of starting a browser project myself. I wrote a custom markup language parser and renderer for the terminal in C (kind of like HTML but for the terminal using ncurses) but I don't really know Rust. I'd like to somehow contribute to this at some point |
Beta Was this translation helpful? Give feedback.
-
I also have started a Web Browser Project; |
Beta Was this translation helpful? Give feedback.
-
I'm a kind of a beginner with Rust myself. I probably have 1-2 years of side-project experience in Rust, depending on how you add things up. But I've worked with nom a little and am quite impressed with it. I see that we're doing some pretty low-level stuff in the initial pass of the HTML5 parser. I was wondering whether it made sense to evaluate The appeals of It is easy to consider changes like this at this stage of the project. It will become harder as the project advances along. |
Beta Was this translation helpful? Give feedback.
-
Pretty dope! |
Beta Was this translation helpful? Give feedback.
-
very nice |
Beta Was this translation helpful? Give feedback.
-
At the beginning of september 2023, there was no gosub. It started as a (al-be-it) futile protest against big tech corps (see the blogpost and related hackernews post).
In the few weeks where I had some time, i've set up the following:
There is still a lot to do, but it's a bit difficult to organize everything at the moment. There are too many things we don't know yet. But for now, the main plan will be:
Make sure the parser can tokenize the tokens into a node-tree.
This work is in progress and some tests are passing. However, the parser is a very complex system where a lot of things can go wrong, which result in endless debugging. The parser is not the fastest parser, and probably has lots of issues.. but the main goal is to be able to parse html5. At a later point, we can see if we can also make it fast, nice and hopefully keep the memory footprint low.
Have a different system (the user-agent (UA)) that receives the node-tree in some form, and prints this only the screen (textmode, maybe graphical).
I want the engine to be separated from the actual browser (the user-agent). This allows us to use the gosub-engine in other applications that needs a html5-browser, or even create a completely different browser based on just the engine. For now my goal would be to have a simple user-agent that receives the node tree that the parser creates, and display this tree on the (graphical/text) screen.
This could be a completely standalone project that does not depend on the parser to be ready. It just needs to have a document with a (correct) html5 tree, which can be mocked.
Analyze the current code and see we can fix all the beginner Rust mistakes i've made.
I have only 3 weeks (21 days) of experience with rust, so there is a lot of mistakes i'm making codewise. We need people to look at the code, try not to laugh at it, and try and fix the mistakes i've made.
generate a DOM tree from the given node tree (or maybe better, convert the node-tree so it can be used as the DOM tree.
Once we have a node tree generated by the parser, we should create a DOM tree. This is fairly similar to the actual node tree, but has all kind of mandatory fields so it can be used by the render engine to display things on screen. There are two ways to deal with this:
If it doesn't make things too complex, i'm for option 1, otherwise, we might keep things a bit simpler by using option 2. Note however, that when we incorporate a javascript engine (v8) into gosub, the parser can execute javascript as well, which needs a dom tree. So at that point, it might even make sense to have a dom tree right in the parser.
Hopefully, we have these points done by the end of next month. But in the meantime, there is enough discussion needed in order to create a real vision for this browser effort.
Beta Was this translation helpful? Give feedback.
All reactions