- Rwf es un framework integral para crear aplicaciones web con Rust
- Está escrito usando el patrón clásico MVC (modelo-vista-controlador) y ofrece por defecto todo lo necesario para crear fácilmente aplicaciones web rápidas y seguras
Resumen de funciones
- Servidor HTTP
- ORM fácil de usar para escribir consultas PostgreSQL con facilidad
- Plantillas dinámicas
- Autenticación y sesiones de usuario integradas
- Middleware
- Tareas en segundo plano y tareas programadas
- Migraciones de base de datos
- Framework REST integrado con soporte para serialización JSON
- Soporte para WebSockets
- Hosting de archivos estáticos
- Integración estrecha con Hotwired Turbo para crear SPA impulsadas desde el backend
- Configuración por entorno
- Logging y métricas
- CLI
- Servidor WSGI para migrar desde aplicaciones Django/Flask
Inicio rápido
- Para agregar Rwf a tu stack, crea una aplicación binaria de Rust y agrega
rwf y tokio a las dependencias:
cargo add rwf
cargo add tokio@1 --features full
- Crear una app es tan simple como esto:
use rwf::prelude::*;
use rwf::http::Server;
#[derive(Default)]
struct IndexController;
#[async_trait]
impl Controller for IndexController {
async fn handle(&self, request: &Request) -> Result {
Ok(Response::new().html("Hey Rwf!"))
}
}
#[tokio::main]
async fn main() {
Server::new(vec![
route!("/" => IndexController),
])
.launch("0.0.0.0:8000")
.await
.unwrap();
}
Estado
- Rwf está en una etapa inicial de desarrollo y no está listo para producción. Muchas funciones y partes de la documentación están incompletas.
Resumen de GN⁺
- Rwf es un framework potente para crear aplicaciones web con Rust, y usa el patrón MVC para ofrecer varias funciones que facilitan el desarrollo de apps web rápidas y seguras.
- Como todavía está en una etapa temprana de desarrollo, puede ser difícil usarlo en entornos de producción, aunque se espera que sus funciones y documentación sigan actualizándose.
- Puede ser útil para desarrolladores que quieran crear aplicaciones web con Rust, y también para quienes estén considerando migrar desde frameworks existentes como Django o Flask.
- Otros frameworks web basados en Rust con funciones similares incluyen Actix y Rocket.
1 comentarios
Opiniones en Hacker News
Se enfatiza que usar la biblioteca estándar de Go reduce la dependencia de frameworks web complejos, mejora la seguridad y facilita el mantenimiento
A partir de la experiencia usando frameworks web MVC, se obtiene la lección de que no se debe poner la lógica de negocio en la capa de modelos
Se espera que un framework REST pueda generar automáticamente definiciones de Swagger
Se valora que elegir el nombre de un framework nuevo es una buena forma de aparecer en los primeros resultados de búsqueda
Hay interés en migrar de Python a Rust
Se advierte que incluir un ORM como función integrada de un framework web puede parecer razonable al principio, pero con el tiempo podría convertirse en un proyecto independiente o surgir el deseo de usar otro ORM
Se menciona que hacen falta más frameworks con posturas firmes como Rails y Django
Se expresa expectativa por el lanzamiento de un framework que cubra un vacío importante en Rust
A través de la experiencia de desarrollo con Django, se reconoce el valor de MVC y se menciona que se revisará el nuevo framework
Tras evaluar varios frameworks para trabajo de backend en Rust, se concluye que Axum es el más adecuado