One of my new years’ resolutions is to be able to be productive enough with Rust to start making contributions to Lemmy and/or to integrate part of the Fediverser project (specifically, the “login with Reddit” feature) into it.

But first steps first, and I want to make a simple web app where I can authenticate users against an LDAP database, and show some data only for authenticated users.

It seems that the most mature libraries for web development in Rust is still actix web (and also the one that Lemmy uses), but what about other parts? Is Tera a good option for someone who is already familiar with Jinja (and Django)? Most of the tutorials I found out are for using actix web mostly as a json API and leaves the frontend for specific javascript SPAs, but what if I want to do “old school” web pages?

    • rglullis@communick.newsOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      1 year ago

      I’m just starting with it, so I can’t really make an honest assessment. It seems though that Actix is more of an HTTP library that provides a server and functionality to parse HTTP requests and produce responses - meaning, only the view part from Django. Database access and ORM seems to be delegated to other libraries like Diesel.

      I could be wrong though, and would love to hear from someone more experienced with both.

        • rglullis@communick.newsOP
          link
          fedilink
          English
          arrow-up
          3
          ·
          1 year ago

          Thanks for the pointer, though I think I will stick with Diesel because this seems to be what Lemmy already uses.

          My main interest is to know what would be the “state-of-the-art” alternatives to some of the things that are already built-in on Django.

          • Form handling (seems like actix-web does it)
          • User management (I haven’t found anything like django-allauth or even “basic” django.contrib.auth)
          • Templates (just got Tera working, so I’ll be trying this one for now)
          • CLI/management commands
          • admin, or at least something like django-rest-framework browsable API

          and so on…