Presentando ToonJS

2025-11-09Francesc Fors5 min

Presentando ToonJS

Estoy emocionado de anunciar ToonJS - una librería TypeScript de alto rendimiento para manipulación de datos tabulares, diseñada específicamente para aplicaciones JavaScript modernas y optimizada para interacciones con LLMs.

¿Por qué ToonJS?

Después de trabajar con datos en JavaScript durante años, seguía encontrándome con los mismos problemas:

  • Rendimiento: Las operaciones manuales de datos eran lentas con grandes conjuntos de datos
  • Uso de Tokens LLM: Enviar datos a modelos de IA consumía demasiados tokens
  • Diseño de API: Las librerías existentes se sentían torpes o sobre-ingenierizadas
  • Seguridad de Tipos: La manipulación de datos en JavaScript carecía de soporte adecuado de TypeScript

ToonJS resuelve todos estos problemas.

El Formato TOON

En el corazón de ToonJS está el formato TOON - una forma compacta y legible de representar datos tabulares:

restaurantes[3]{nombre,ciudad,calificacion}:
  Can Cesco,Barcelona,4.8
  El Bulli,Girona,5.0
  Tickets,Barcelona,4.6

Este formato es:

  • ✅ 50% más compacto que JSON para LLMs
  • ✅ Legible por humanos y fácil de editar
  • ✅ Optimizado para eficiencia de tokens
  • ✅ Compatible con todos los LLMs principales

Rendimiento

ToonJS es rápido. Realmente rápido.

A través de optimizaciones estilo DOOM (pre-asignación, cálculos inline, búsquedas basadas en conjuntos), logramos:

  • 3.5x más rápido en cálculos de correlación
  • 3x más rápido en operaciones de ranking
  • 1.7x más rápido en normalización
  • 2x promedio de mejora de rendimiento

API Type-Safe

Cada método en ToonJS está completamente tipado:

import { ToonFactory } from '@cescofors/toonjs';

const data = ToonFactory.from(toonString);

const result = data
  .filter(r => r.calificacion > 4.5)
  .sortBy(['calificacion'], ['desc'])
  .select(['nombre', 'ciudad'])
  .all();

Más de 60 Métodos

ToonJS incluye todo lo que necesitas para análisis de datos:

  • Acceso a Datos: all(), first(), last(), at(), find(), pluck()
  • Filtrado: filter(), filterRange(), search(), distinct()
  • Transformación: map(), select(), exclude(), addField()
  • Agregación: groupBy(), countBy(), aggregate(), stats()
  • Estadísticas: correlation(), covariance(), normalize(), standardize()
  • Series Temporales: rolling(), lag(), lead(), diff(), pctChange()

Zero Dependencies

ToonJS es TypeScript puro con cero dependencias en tiempo de ejecución.

Esto significa:

  • Bundle más pequeño
  • Sin vulnerabilidades de cadena de suministro
  • Instalación más rápida
  • Control completo

Comienza Ahora

npm install @cescofors/toonjs

Consulta la documentación o pruébalo en el playground.

¡Gracias por leer y feliz codificación! 🚀