development
Wolfballs Development masterofballs 3 years ago 0%

Did some learning

Think i'll document what I learn about the code base here.

Lemmy 's docs say that lemmy is built with,

  • Rust
  • Actix
  • Diesel
  • Inferno
  • Typescript

I've written some Rust before. A little sdl game, and a couple other things. It's been a while because I got kinda burnt out with the Rust community. They are pretty woke and honestly I prefer the C++ community.

But Rust is a super fast language and it's perfect for this site. I've actually been able to handle around 100 users traffic on a pi4 and SD card. I take daily db backup because sdcards are more corruptible.

Anyways,

I'm also pretty good with Typescript. If you know javascript you don't really need to know much about Typescript to use it.

Inferno seems to be a react like library. I've used Vuejs, angularjs,1 and 2+. So it's not a huge learning curve. Honestly its probably my least faviorite javascript framework ever so far. Maybe I can get used to it and learn to like it.

Compiling a web and desktop version of the flutter app also seems like it might be a good path forward. It just looks and feels so much nicer. I don't know flutter or dart at all though.

Diesel and Actix are technologies I have not worked much with.

Today I went through the getting started guide for Diesel here https://diesel.rs/guides/getting-started

And finished that up. It feels pretty straight forward to work with. Doesn't do too much but does enough to make database work easier. I've worked extensively with postgres and used to write my own migration scripts. Diesel helps take care of some of that stuff for you.

Lemmy code base is pretty big so I have a lot to read and understand before I can quickly add features. But i'm on the right track.

I typically attack these sort of problems by understanding each technology by starting small projects and then trying to follow the control flow of a larger app in a debugger or just printing lines.

I also write out Dockerfiles and docker-compose environments as I go so I never have to figure out how to set up an environment twice.

Easy things like removing the slur filter was quick and easy. I found the spot where it was removed it and just rebuilt. Adding something like polls will take database work, rust work, ui work and so I really have to understand the whole stack to do that. Which will take a little time doing this on the weekends and while my family is asleep.

I hope to have a big feature or so done in December's end. After the first 1 or two subsequent features should go faster.

0
0
Comments 0