3 Punkte von GN⁺ 2024-10-07 | 1 Kommentare | Auf WhatsApp teilen
  • Bei der Webentwicklung mit Rust gibt es kein Framework wie Django, sodass man vieles selbst erledigen muss
  • Um Rusts Stärken wie Typsystem, Performance und Build-Zeiten zu nutzen, braucht es ein Framework, das die Webentwicklung einfacher macht

Benötigte Funktionen

  • Routing/Handler: Es wird eine Funktion benötigt, die Anfragen an den zuständigen Handler weiterleitet
  • Templates: Es sollte möglich sein, Inhalte wie HTML und JSON zu erzeugen
  • Bereitstellung statischer Dateien: Es wird eine Funktion benötigt, um Assets wie CSS-Dateien auszuliefern
  • Login: Für Multi-User-Apps wird eine Login-Funktion benötigt
  • Rechtemanagement: Zugriffsrechte sollten pro Benutzer verwaltet werden können
  • Datenbank-Interface: Es wird eine Funktion benötigt, um Daten zu speichern und zu verwalten
  • Admin-Tools: Es werden Werkzeuge benötigt, die grundlegende Verwaltungsaufgaben unterstützen
  • WebSockets: Für die Echtzeit-Datenübertragung wird WebSocket-Funktionalität benötigt
  • Hot Reloading: Änderungen am Code sollten sofort übernommen werden

Zusätzlich benötigte Funktionen

  • Hintergrundaufgaben: Es wird eine Funktion benötigt, um Aufgaben nach Zeitplan auszuführen
  • Monitoring/Observability: Der Systemzustand sollte überwacht werden können
  • Caching: Es wird Caching zur Verbesserung der Performance benötigt
  • E-Mail und Benachrichtigungen: Es werden Benachrichtigungsfunktionen benötigt, um Dinge wie Passwort-Resets zu unterstützen
  • Deployment-Tools: Es wird eine konsistente Methode für Deployments benötigt
  • CSS/JS-Bundling: Es werden Funktionen benötigt, um CSS- und JS-Dateien effizient zu verwalten

Bestehendes Ökosystem

  • Web-Frameworks: Es gibt Frameworks wie actix-web und axum, die nur minimale Funktionen bereitstellen
  • Bibliothekssammlung: Es gibt verschiedene Bibliotheken für Templates, Login, Rechtemanagement usw., aber es fehlt an einer integrierten Lösung

Neues Web-Toolkit

  • nicole's web toolkit (newt): Ein Web-Toolkit, das verschiedene Funktionen integriert, befindet sich in Entwicklung
  • Ziel: Es soll dabei helfen, neue Web-Apps schnell zu starten
  • Plan: Es soll eine integrierte Lösung auf Basis bestehender Building Blocks bereitgestellt werden

Zusammenfassung von GN⁺

  • Es wird die Notwendigkeit eines integrierten Web-Frameworks betont, das die Webentwicklung mit Rust erleichtert
  • Es wird ein Versuch vorgestellt, die Grenzen bestehender Web-Frameworks und Bibliotheken zu überwinden
  • Mit nicole's web toolkit (newt) sollen verschiedene Funktionen integriert werden, um die Developer Experience zu verbessern
  • Der Versuch, die Vorteile eines Frameworks wie Django in das Rust-Ökosystem zu bringen, ist bemerkenswert
  • Andere Projekte mit ähnlicher Funktionalität sind unter anderem actix-web und axum

1 Kommentare

 
GN⁺ 2024-10-07
Hacker-News-Kommentare
  • Eine Meinung von jemandem, der gern mit minimalem Aufwand interessante Dinge mit Rust baut. Rust bietet hohe Effizienz und gutes Speichermanagement, aber für Webentwicklung seien Go oder Django besser geeignet.

  • Rust bietet Sicherheit und hilft Entwicklern, Fehler zu vermeiden; außerdem hat es den Vorteil, dass man Code auch mit einfachen Werkzeugen wie Notepad schreiben kann.

  • Als Web-Framework sei Rocket das beste Framework für „faule Entwickler“.

  • Mit Rusts Pattern Matching brauche man keinen Router, und Authentifizierung sei kein Problem der Sprache oder des Frameworks.

  • CSS/JS-Tools seien für Rust-Frontend-Frameworks nicht geeignet, und Rust sei auch im Frontend-Webbereich bereits ausreichend ausgereift.

  • Es habe überrascht, dass das Rocket-Framework nicht erwähnt wurde; Rocket verfolge das Ziel eines Frameworks mit „Batterien inklusive“.

  • Webentwicklung mit Rust sei grundsätzlich in Ordnung, aber es gebe Probleme bei der Nebenläufigkeit, und die Auswahl einer Komponentenbibliothek sei schwierig.

  • Zur Verbesserung der UX werde Flutter eingesetzt, und die Integration mit Rust sei einfach, was als zufriedenstellend empfunden werde.

  • Flutter respektiere das DOM nicht, sei aber attraktiv, weil sich damit leicht eine UX erstellen lasse, die überall bereitgestellt werden kann.

  • Poem sei FastAPI ähnlich, erfordere aber viel Boilerplate bei der Ersteinrichtung.

  • Der Ausdruck „faul“ werde im Sinne der Erwartung verwendet, dass ein Web-Framework allgemeine Aufgaben übernimmt; tatsächlich sei aber viel Arbeit nötig.

  • Projekte wie loco-rs, poem und rocket böten bereits eine Erfahrung mit „Batterien inklusive“, und die CLI leite dabei an.

  • F# bietet ein Rust ähnliches Typsystem und Tooling, aber asynchrone Verarbeitung und Speichermanagement seien weniger komplex.

  • Der Autor wünsche sich für Rust ein Framework wie Spring Boot.