• 2 min de lectura
Topcoat reúne Rust full-stack en un solo framework
Topcoat es un framework experimental y modular en Rust para aplicaciones full-stack, que combina renderizado en servidor, reactividad en el cliente, enrutamiento, recursos y soporte para Tailwind.

Imagen: Hacker News
Topcoat es un framework en Rust experimental y en fase inicial para construir aplicaciones full-stack desde una única base de código. El proyecto modular con todo incluido prioriza la simplicidad y la productividad, mientras advierte a los desarrolladores de que deben esperar cambios que rompan la compatibilidad.
Una aplicación mínima arranca un enrutador detectado y define una página con #[page(“/”)]. Los componentes son funciones asíncronas de Rust anotadas con #[component], y la macro view! produce plantillas similares a HTML:
''rust #[tokio::main] async fn main() { topcoat::start(Router::builder().discover().build()).await.unwrap(); } ''
Renderizado en servidor con reactividad en el cliente
Topcoat renderiza el marcado en el servidor, lo que permite que los componentes consulten una base de datos directamente sin la habitual capa API separada. Las interacciones en el cliente usan expresiones $(…): estas son comprobadas por tipos en Rust durante el renderizado inicial en el servidor y se traducen a JavaScript para actualizaciones inmediatas en el navegador.
Ese enfoque no requiere un paquete de WebAssembly ni un paso de compilación del cliente. Cuando una interacción necesita datos nuevos del servidor, los desarrolladores pueden marcar un componente como #[shard]. Topcoat vuelve a renderizar el shard cuando uno de sus argumentos $(…) cambia y sustituye el HTML resultante en su lugar —por ejemplo, actualizando los resultados de búsqueda mientras el usuario escribe.

Recomendado
Open Book Touch convierte la lectura de código abierto en algo de bolsillo
Enrutamiento, recursos e integraciones
La macro view! combina el HTML familiar con el control de flujo habitual de Rust, incluidos bucles y atributos condicionales. El comando CLI topcoat fmt formatea fragmentos view! y otras macros en una base de código.
El enrutamiento puede declararse manualmente o inferirse desde el árbol de módulos sin un paso de compilación. Archivos como about.rs, pricing.rs y health.rs pueden mapear a /about, /pricing y GET /api/health; los módulos dinámicos pueden producir rutas como /posts/{post_id}. Los módulos con guión bajo proporcionan diseños sin añadir un segmento a la URL.
El empaquetador de recursos escanea los binarios compilados en busca de llamadas a asset!, copia o descarga los archivos referenciados en un directorio local de recursos y los sirve con un caché agresivo en el navegador. Topcoat también incluye utilidades para fuentes web e iconos, además de integraciones con Fontsource e Iconify.
Habilitar la característica tailwind añade Tailwind CSS sin Node, a través de la canalización de recursos. El framework también ofrece utilidades para htmx, contexto de la solicitud y de la aplicación, memoización por solicitud, cookies, sesiones, flujos de autenticación y rutas API. Los desarrolladores pueden comenzar con la guía de inicio, instalar la CLI y ejecutar el servidor de desarrollo.
Computing Editor
Tomas lives in the terminal. He covers chips, laptops, and operating systems with a focus on performance and efficiency. He reads kernel changelogs the way other people read fiction, and he's always on the hunt for the perfect mechanical keyboard switch. If it processes data, Tomas has an opinion on it.
vía Hacker News


