3 puntos por GN⁺ 2024-10-07 | 1 comentarios | Compartir por WhatsApp
  • Al desarrollar para la web con Rust, existe el problema de que no hay un framework como Django, así que hay que hacer muchas cosas manualmente
  • Para aprovechar las ventajas de Rust, como su sistema de tipos, rendimiento y tiempos de compilación, se necesita un framework que facilite el desarrollo web

Funciones necesarias

  • Enrutamiento/handlers: se necesita una función que conecte las solicitudes con los handlers que las procesarán
  • Plantillas: debe poder generar contenido como HTML y JSON
  • Entrega de archivos estáticos: se necesita una función para servir recursos como archivos CSS
  • Inicio de sesión: se necesita autenticación para aplicaciones multiusuario
  • Gestión de permisos: debe permitir administrar los permisos de acceso por usuario
  • Interfaz de base de datos: se necesita una función para almacenar y administrar datos
  • Herramientas de administración: se necesitan herramientas que apoyen tareas administrativas básicas
  • WebSockets: se necesita soporte de WebSockets para la transmisión de datos en tiempo real
  • Hot reloading: se necesita una función que refleje de inmediato los cambios en el código

Funciones adicionales necesarias

  • Tareas en segundo plano: se necesita una función para ejecutar tareas según una programación
  • Monitoreo/observabilidad: se necesita una función para monitorear el estado del sistema
  • Caché: se necesita una función de caché para mejorar el rendimiento
  • Correo electrónico y notificaciones: se necesita una función de notificaciones para soportar características como el restablecimiento de contraseña
  • Herramientas de despliegue: se necesita una forma consistente de despliegue
  • Empaquetado de CSS/JS: se necesita una función para gestionar eficazmente los archivos CSS y JS

Ecosistema existente

  • Frameworks web: existen frameworks como actix-web y axum que ofrecen funcionalidades mínimas
  • Conjunto de librerías: existen varias librerías para plantillas, autenticación, gestión de permisos, etc., pero faltan soluciones integradas

Nuevo toolkit web

  • nicole's web toolkit (newt): se está desarrollando un toolkit web que integra varias funciones
  • Objetivo: ayudar a iniciar rápidamente nuevas aplicaciones web
  • Plan: ofrecer una solución integrada usando bloques de construcción existentes

Resumen de GN⁺

  • Se destaca la necesidad de un framework web integrado que facilite el desarrollo web con Rust
  • Se presenta un intento de superar las limitaciones de los frameworks web y librerías existentes
  • Se busca mejorar la experiencia del desarrollador integrando diversas funciones a través de nicole's web toolkit (newt)
  • Resulta llamativo el intento de incorporar al ecosistema de Rust las ventajas de un framework como Django
  • Otros proyectos con funciones similares incluyen actix-web y axum

1 comentarios

 
GN⁺ 2024-10-07
Opinión de Hacker News
  • Opinión de alguien a quien le gusta crear cosas divertidas con el mínimo esfuerzo usando Rust. Considera que Rust destaca en eficiencia y gestión de memoria, pero que para desarrollo web Go o Django son más adecuados

  • Rust ofrece seguridad, lo que ayuda a los desarrolladores a cometer menos errores, y tiene la ventaja de que se puede escribir código incluso con herramientas simples como Notepad

  • Como framework web, considera que Rocket es el mejor framework para un "desarrollador perezoso"

  • Opina que, aprovechando la función de pattern matching de Rust, no hace falta un router, y que la autenticación no es un problema del lenguaje ni del framework

  • Las herramientas de CSS/JS no encajan bien con los frameworks frontend de Rust, pero considera que Rust ya es lo suficientemente maduro también en la web frontend

  • Le sorprendió que no se mencionara el framework Rocket, y opina que Rocket tiene como objetivo ser un framework de tipo "baterías incluidas"

  • Considera que hacer desarrollo web con Rust está bien, pero que hay problemas de concurrencia y que es difícil elegir una biblioteca de componentes

  • Está mejorando la UX usando Flutter, y está satisfecho porque la integración con Rust es sencilla

  • Flutter no respeta el DOM, pero le resulta atractivo porque permite crear fácilmente una UX que se puede desplegar en cualquier lugar

  • Opina que Poem es similar a FastAPI, pero requiere mucho boilerplate en la configuración inicial

  • La expresión "perezoso" se usó en el sentido de querer que el framework web se encargue de las tareas comunes, aunque en la práctica sigue habiendo mucho trabajo por hacer

  • Considera que proyectos como loco-rs, poem y rocket ya ofrecen una experiencia de tipo "baterías incluidas", y que el CLI guía ese proceso

  • Opina que F# ofrece un sistema de tipos y herramientas similares a Rust, pero con menos complejidad en el procesamiento asíncrono y la gestión de memoria

  • El autor quiere un framework para Rust similar a Spring Boot