Feature

Presentamos Bun para Analysis

Ejecuta TypeScript y JavaScript en TagoIO con importaciones por nombre de paquete, bundles guardados y conexiones a servicios externos.

TagoIO Team ·
Presentamos Bun para Analysis

Bun ya está disponible para TagoIO Analysis. Ejecuta TypeScript y JavaScript directamente, con importaciones de paquetes escritas como lo harías en un proyecto de Node.js. TagoIO se encarga de la compilación para la ejecución alojada, así que puedes mantener tu script sin un paso local aparte de compilación o empaquetado.

Usa Bun cuando procesar datos de dispositivos también implique llamar a otro servicio o usar una biblioteca. Convierte una lectura de temperatura alta en una solicitud de mantenimiento, da formato a las lecturas para un sistema de informes o combina datos de sensores con información de una API externa. Tu Analysis puede encargarse del procesamiento y de la integración sin que tengas que mantener un servidor aparte.

Escribe TypeScript con importaciones que ya conoces

Importa el SDK de JavaScript de TagoIO como @tago-io/sdk, o una biblioteca de fechas como dayjs. Bun resuelve los paquetes por su nombre. La compatibilidad con TypeScript está integrada, así que puedes conservar los tipos en el script que editas en TagoIO en lugar de compilarlo a JavaScript antes de subirlo.

Bun no acepta los prefijos de importación npm: o jsr: de Deno. Usa los nombres de los paquetes sin prefijos e incluye una versión en la importación cuando necesites una versión concreta del paquete.

Guarda un bundle y reutilízalo entre ejecuciones

El código TypeScript o JavaScript importa @tago-io/sdk y dayjs; una compilación correcta combina el script guardado y los paquetes en un bundle que dos ejecuciones reutilizan sin instalar paquetes

Cuando guardas una versión, TagoIO compila el script y sus paquetes en un único archivo. Tras una compilación correcta, las siguientes ejecuciones usan ese bundle guardado sin volver a instalar los paquetes. Las dependencias se preparan al guardar, en lugar de repetir ese proceso en cada ejecución.

Esa ventaja depende de que la compilación termine correctamente. Algunos fallos, como un bundle de más de 10 MB, hacen que los paquetes se instalen en cada ejecución. En cambio, los errores de sintaxis o los paquetes que no se encuentran detienen la ejecución. La guía del runtime de Bun explica los fallos de compilación y cómo resolverlos.

Conecta las lecturas con un servicio externo

Un Analysis con Bun compara una lectura de 38 °C de greenhouse-01 con un límite de 35 °C, da formato a las 14:05 como 2:05 PM con dayjs y envía una orden de trabajo para revisar la refrigeración a una API de mantenimiento, que devuelve 201 Created

Por ejemplo, un sensor de invernadero registra 38 °C. Tu Analysis con Bun puede leer los datos del dispositivo, combinarlos con los detalles de la instalación y dar formato a la marca de tiempo con un paquete. Después llama a la API de tu sistema de mantenimiento para crear una orden de trabajo: “Revisar la refrigeración”.

Tú proporcionas las credenciales del servicio y el formato de la solicitud. El mismo enfoque sirve para enviar lecturas con el formato adecuado a una API de informes o enriquecer el registro de un dispositivo con datos obtenidos de otro sistema.

Cómo se compara Bun con otros runtimes

  • Node.js: Compila y prueba un script empaquetado localmente y después súbelo. Bun traslada la compilación y el empaquetado de dependencias a TagoIO, así que puedes editar TypeScript directamente en Admin.
  • Deno: Ambos runtimes permiten mantener TypeScript en el editor. Bun importa los paquetes por su nombre, sin prefijos; Deno usa especificadores npm: o URLs.
  • Python: Consérvalo para trabajos con datos que dependan de bibliotecas como pandas, numpy o scipy. Elige Bun cuando la tarea encaje con JavaScript o TypeScript y sus paquetes.

La ejecución alojada de Bun cuenta para el límite mensual de Analysis Service de tu perfil.

Compara la velocidad de los runtimes con la misma carga de trabajo

Comparación del procesamiento de datos de sensores entre runtimes:

Tiempo mediano de ejecución
Runtime1000 lecturas100.000 lecturas
Luau 0.728 0,74 ms30,60 ms
Bun 1.4.2 19,21 ms27,49 ms
Deno 2.4.4 30,63 ms37,87 ms
Node.js 24.21.0 29,74 ms37,98 ms
Python 3.13 69,70 ms138,52 ms

Cada runtime usa la versión que aloja TagoIO. Luau se ejecuta dentro de TagoIO sin iniciar un proceso aparte, así que sus tiempos solo cubren el script. Los demás runtimes inician un proceso nuevo en cada ejecución, y ese arranque supone la mayor parte de su tiempo con 1000 lecturas.

Cómo afecta la velocidad al consumo

Para Bun, Deno, Node.js y Python, una ejecución alojada más rápida puede reducir el consumo de Analysis Service cuando baja a un tramo de facturación inferior. Cada ejecución tiene un mínimo de un segundo, así que las diferencias de menos de un segundo, por sí solas, no demuestran un ahorro en la facturación.

Compila y prueba en Admin

Crea un Analysis nuevo, elige Bun (bun-rt2026) en Runtime y selecciona TagoIO en Runs on. Escribe tu script en el editor y guarda una versión. Revisa los errores de compilación en la Console y después haz clic en Run para ejecutarlo e inspeccionar sus registros.

TagoAI puede ayudarte a escribir y depurar tu script.

Primeros pasos

Lee la guía de runtimes de Analysis y después crea un Analysis nuevo en Admin. Consulta las notas de la versión del 13 de octubre para leer el anuncio de Bun.