Lemmy is an open-source, federated link aggregator and discussion platform similar to Reddit, Lobste.rs, or Hacker News. The software stack used in Lemmy includes Rust with Actix and Diesel for the backend, and TypeScript with Inferno for the frontend.

The developers chose Rust for its performance, safety, and concurrency features, which help in building a reliable and efficient backend. Actix is a popular Rust web framework that provides a lightweight and fast foundation for the server-side application. Diesel is a Rust ORM (Object-Relational Mapping) and query builder that simplifies database interactions. On the frontend, TypeScript offers better type safety and tooling compared to plain JavaScript, while Inferno is a fast and lightweight React-like library for building user interfaces. These technologies were chosen to create a performant, reliable, and easily deployable platform.

I read someone saying that the lack of contributors was due to the software stack being unconventional and takes people a while to get used to it. So I was curious to know what other people would have used.

  • Cyclohexane@lemmy.ml
    link
    fedilink
    arrow-up
    14
    arrow-down
    1
    ·
    1 year ago

    I think Rust is a little hard to find contributors, and is also just hard in general. Too low level.

    I would opt for a language like Kotlin, Go or TypeScript. Easier than Rust, more popular than, or similar to Rust popularity.

    JS, Python and ruby might also be very easy and popular, but they’re a little too loosey for me for a large project.

    If I were to do it today, I would choose Scala purely out of interest. Such a cool language. But it’s probably less practical and popular than the choices I named above

    • Anti-Antidote@lemmy.zip
      link
      fedilink
      arrow-up
      13
      arrow-down
      1
      ·
      1 year ago

      I’d argue the opposite - Rust is the perfect fit for the entire stack. We don’t even need JS with libraries like Yew

    • severien@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      1 year ago

      I agree. Rust has advantages, but none of them outweighs the negatives (complexity, difficult to find devs) for this particular use case.

      I also agree that JVM would be a good platform. It’s both performant enough and simple/conventional enough.

    • Miaou@jlai.lu
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      The thing with sum types, async support, trait system, is low level?