ferus-web / ferus

A toy web engine written in Nim
GNU General Public License v3.0
115 stars 4 forks source link

Contribution guide #3

Closed moigagoo closed 1 year ago

moigagoo commented 1 year ago

Hi!

I think the project is awesome and you're truly doing God's work.

I'd like to help but I'll need you to assign a task or something.

xTrayambak commented 1 year ago

Hey! Thank you so much for showing interest! I'd really appreciate it if you can try and help me write the layout engine. It is a true pain, I need to implement bounding boxes and stuff, you can check out the NetSurf (or Neosurf) code inside contrib/ on how they implemented it, and if the core engine lacks something in relation to it, let me know and I will try and implement it. Again, I am very grateful that you are willing to help. Hopefully we can get something good working. :D

xTrayambak commented 1 year ago

As of right now, I am trying to multithread ferushtml (I just multithreaded the dumping utility, though it's only useful for debugging), and once that's up to par, I'll focus on the layout engine with you, and then work on a fast consume parser as the FSM parser is painfully slow. (takes 0.04 ms for me, good enough but there's definitely room for improvement).

xTrayambak commented 1 year ago

You should also check the docs out although they're pretty lackluster.

xTrayambak commented 1 year ago

I've started working on a full out layout engine in the experimental branch, perhaps you can help out there? It's mostly just porting from NeoSurf.

xTrayambak commented 1 year ago

If your doubts are cleared, please let me know so I can close this issue.

moigagoo commented 1 year ago

If your doubts are cleared, please let me know so I can close this issue.

Thanks for the quick and detailed response. I think you can close this issue.

I've tried building the project locally but unfortunately it requires glibc 2.33 and I'm on Zorin OS which is based on Ubuntu 20.04 that's incompatible with glibc 2.33+.

I think I'll start by building the project with Docker and contributing the Dockerfile. I can't do anything without being able to build the project anyway.

xTrayambak commented 1 year ago

Yeah, that's a Nim thing or something, totally out of my control. You'll unfortunately have to use Docker until Zorin updates. I've only tested compilation on Fedora 38 but in theory it should work on anything that ships remotely new software/libs.

xTrayambak commented 1 year ago

Also, 20.04 is LTS so I highly doubt Zorin will update the base for a few years, so Docker is your best bet.

moigagoo commented 1 year ago

I managed to run debugBuild in Docker but I'm now getting this weird error from JsonParser that is actually raised by Firejail and has nothing to do with Ferus.

xTrayambak commented 1 year ago

Aah, nim-firejail is a totally broken mess. I think I replaced it with my own crappy solution that actually works. Are you sure that you are running a version beyond experimental#a633960

moigagoo commented 1 year ago

Aah, nim-firejail is a totally broken mess. I think I replaced it with my own crappy solution that actually works. Are you sure that you are running a version beyond experimental#a633960

@xTrayambak Tried switching to experimental branch but the issue is still the same.