Saltar al contenido
ES EN
Tema: automático

Primeros pasos con Topcoat, el framework web full-stack de Rust

Guía práctica para evaluar Topcoat 0.9, el framework full-stack en Rust del equipo de Tokio: qué prepara, cómo se explora y qué límites tiene hoy.

Ingeniería de software

El equipo de Tokio ha hecho público Topcoat, un framework web full-stack para Rust con renderizado en servidor y una versión 0.9 ya disponible. Su propuesta es llevar a Rust algo parecido a la productividad de Rails o Django, sin cargar con un bundle de WebAssembly en el navegador.

Esta guía no es un tutorial definitivo, porque el proyecto cambia rápido. Es una forma ordenada de evaluarlo: qué conviene tener a mano, en qué orden mirar sus piezas y qué esperar de ellas. Todo lo que contamos se apoya en el material público del anuncio y en el repositorio.

Lo que necesitas

Necesitas una instalación funcional de Rust con Cargo, ya que el framework se publica en crates.io con licencia MIT. También ayuda conocer Tokio, el runtime asíncrono del que parte el equipo, y tener claro qué tipo de aplicación quieres probar.

Conviene que sea una aplicación corriente, de navegador y con base de datos, que es justo el objetivo declarado. El propio Carl Lerche admitió que Topcoat no apunta a aplicaciones del tamaño de Figma. Si tu caso exige autenticación o trabajos en segundo plano integrados, anótalo: siguen pendientes.

  1. Lee el repositorio de Topcoat y la nota de la versión 0.9 para saber qué incluye y qué no.
  2. Sigue la guía de inicio del proyecto o las instrucciones de configuración manual para crear una aplicación mínima.
  3. Prueba la macro view! y el enrutado por módulos, que se deduce del árbol de archivos.
  4. Añade un fragmento reactivo con $(...) y comprueba que reacciona en el navegador sin paso de compilación de cliente.
  5. Marca un componente con #[shard] y observa cómo se vuelve a renderizar en el servidor.
  6. Incorpora componentes con la CLI de Topcoat UI y modifícalos en tu proyecto.
Código Rust abierto en un editor mostrando una plantilla de vista con HTML mezclado con expresiones
La macro view! mezcla HTML con control de flujo de Rust.

Cómo funciona la reactividad

La idea central son las expresiones $(...): fragmentos de Rust normales, con comprobación de tipos. Topcoat los evalúa en el servidor para el primer render y además los traduce a JavaScript, de modo que se reejecutan en el navegador sin WebAssembly. Cuando hace falta el servidor, un componente marcado como shard se vuelve a renderizar allí y el HTML nuevo sustituye al anterior.

// Forma orientativa: consulta el repositorio para la sintaxis exacta de 0.9
view! {
    <p>"Total: " $(precio * cantidad)</p>
}

Este enfoque lo acerca a HTMX, Datastar o Phoenix LiveView más que a React o SolidJS. Dentro de Rust se diferencia de Leptos y Dioxus, que compilan a WebAssembly y cargan con ese paquete inicial. Para la capa de datos, el proyecto anuncia una integración más estrecha con el ORM asíncrono Toasty, que gestiona migraciones y acceso a la base de datos en el mismo workspace.

Truco Antes de nada, abre la issue 104 del repositorio, donde se sigue el trabajo cercano en autenticación, tareas en segundo plano, exportación estática e integración con Toasty. Te dirá en un minuto si Topcoat cubre lo que necesitas.

Componentes, estilos y límites

Topcoat UI es una biblioteca de componentes inspirada en shadcn/ui. Los componentes se copian a tu proyecto con la CLI, así que puedes editarlos en lugar de envolver un paquete cerrado. También hay un asset pipeline con URLs con hash de contenido y una integración con Tailwind que no requiere Node.js.

La advertencia importante: estamos en una serie 0.x sin garantía de estabilidad a largo plazo. El equipo promete notas de versión y guía de migración cuando haga falta, pero conviene fijar la versión y reservar tiempo para actualizar. La comunidad está dividida: en Hacker News hubo entusiasmo por un Django en Rust, mientras Hobofan temía que el nombre atraiga más adopción que sus méritos.

Diagrama de una aplicación renderizada en servidor con fragmentos que se actualizan en el navegador
El servidor renderiza; el navegador reejecuta solo las expresiones reactivas.

Nuestro consejo práctico: úsalo primero en una herramienta interna o un prototipo con base de datos, mide cuánto te ahorra frente a montar tus propias piezas y decide después. Para proyectos con requisitos estrictos de autenticación o jobs, espera a que esas partes salgan de la hoja de ruta.

Fuente original: infoq.com

Elaborado con apoyo de IA y revisado por la redacción

Kernel

· Dirección de tecnología · España

«Topcoat promete productividad al estilo Django en Rust, pero con un 0.9 conviene medir antes de apostar.»