BookinglyTech News
Software

TanStack Charts llega en alpha: gramática de gráficos para TypeScript sin atarse a un framework

La nueva librería de Tanner Linsley compone marcas, escalas y capas en lugar de ofrecer un catálogo de gráficos cerrados, con adaptadores para ocho frameworks y unos 29 kB minificados.

3 min de lecturaInfoQ0 vistas

TanStack ya tiene librería de gráficos. Se llama TanStack Charts, la firma Tanner Linsley y su equipo, y llega en alpha con una gramática de visualización agnóstica del framework y escrita en TypeScript. No es un catálogo de componentes de gráfico: el desarrollador compone marcas, escalas, canales, transformaciones y capas, siguiendo la tradición de la gramática de los gráficos que formalizó Leland Wilkinson. El paquete se publica bajo licencia MIT y ya acumula unas 160.000 descargas semanales, según el propio proyecto, pese a que el repositorio avisa de que no está listo para producción.

El runtime es una implementación independiente, aunque su API de marcas y canales queda más cerca de Observable Plot que de cualquier otra cosa. Un detalle que importa a quien escribe tipos todo el día: los tipos inferidos se mantienen ligados a la fila de origen, así que cada marca lee directamente de la forma de tus datos. La misma definición se renderiza a través de adaptadores para React, Preact, Vue, Solid, Svelte, Angular, Lit y un host DOM plano, tanto en servidor como en navegador. La instalación es un solo paquete, con react y react-dom como peers si usas el adaptador de React.

Rendimiento y tamaño

La librería publica sus propias comparativas de peso: un gráfico de líneas básico en React ronda los 29 kB minificados y comprimidos, y la suite controlada del proyecto se mueve entre 38 y 45 KiB. Para ponerlo en contexto, ellos mismos sitúan a Chart.js en 45-58 KiB, Observable Plot en 83-92, Apache ECharts en 153-173 y AG Charts bastante por encima.

El competidor comercial SciChart ofrece otra lectura y sostiene que TanStack encaja mejor en visualizaciones sencillas que no necesiten procesar en tiempo real conjuntos de datos grandes, terreno donde recomienda renderizadores acelerados por hardware. La propia documentación de datos masivos del proyecto es honesta en ese punto: usar Canvas elimina el coste del DOM de SVG, pero no el trabajo de escalado, guías y compilación de escena.

La guía de estabilidad es explícita: alpha no es una promesa de API estable y conviene fijar una versión exacta. Hay guía de migración para equipos que vengan de otras soluciones.

Cómo se construyó

Un apunte del lanzamiento que no debería pasar desapercibido: Linsley afirma en GitHub que "casi toda la implementación fue producida con agentes de IA bajo mi supervisión directa", y que ese código pasó revisión antes de entrar al proyecto. Con 11 releases, 188 ejemplos, un catálogo completo de gráficos estilo shadcn, ejes múltiples, escalas polares y sunbursts navegables, el alcance de la alpha no es precisamente pequeño.

TanStack es la familia de librerías headless y tipadas de Linsley: Query, Table, Router, Form y el framework Start. Charts extiende ese mismo enfoque a la visualización de datos. Para quien tenga que elegir hoy una librería de gráficos en un proyecto TypeScript, la pregunta no es si la API es agradable, sino cuánto tarda el equipo en tener que fijar versiones y cuándo se puede considerar estable. De momento toca probar en una rama y leer la guía de estabilidad.