Feature

Bun arrive dans Analysis

Exécutez du TypeScript et du JavaScript dans TagoIO avec des imports par nom de package, des bundles enregistrés et des connexions aux services externes.

TagoIO Team ·
Bun arrive dans Analysis

Bun est désormais disponible pour TagoIO Analysis. Il exécute directement le TypeScript et le JavaScript, avec des imports de packages écrits comme dans un projet Node.js. TagoIO prend en charge le build pour l’exécution hébergée : vous pouvez donc maintenir votre script sans étape distincte de compilation ou de création de bundle en local.

Utilisez Bun lorsque le traitement des données d’appareils nécessite aussi d’appeler un autre service ou d’utiliser une bibliothèque. Transformez une température élevée en demande de maintenance, mettez les mesures au format attendu par un système de reporting ou combinez les données des capteurs avec des informations issues d’une API externe. Votre Analysis peut assurer le traitement et l’intégration, sans serveur supplémentaire à maintenir.

Écrivez du TypeScript avec des imports familiers

Importez le SDK JavaScript TagoIO avec @tago-io/sdk, ou une bibliothèque de gestion des dates avec dayjs. Bun résout les packages à partir de leur nom. La prise en charge de TypeScript est intégrée : vous pouvez conserver les types dans le script que vous modifiez sur TagoIO, au lieu de le compiler en JavaScript avant de l’envoyer.

Bun n’accepte pas les préfixes d’import npm: ou jsr: de Deno. Utilisez simplement les noms des packages et précisez une version dans l’import si vous avez besoin d’une version particulière du package.

Enregistrez un bundle et réutilisez-le à chaque exécution

Le code source TypeScript ou JavaScript importe @tago-io/sdk et dayjs ; un build réussi regroupe le script enregistré et ses packages dans un bundle, réutilisé par deux exécutions sans réinstaller les packages

Lorsque vous enregistrez une version, TagoIO regroupe le script et ses packages dans un seul fichier. Après un build réussi, les exécutions suivantes utilisent ce bundle enregistré sans réinstaller les packages. La préparation des dépendances a lieu à l’enregistrement, au lieu d’être répétée à chaque exécution.

Ce gain dépend de la réussite du build. Certains échecs, comme un bundle de plus de 10 Mo, entraînent un retour à l’installation des packages à chaque exécution. Les erreurs de syntaxe ou les packages manquants bloquent l’exécution. Le guide du runtime Bun explique les échecs de build et comment les résoudre.

Reliez les mesures à un service externe

Une Analysis Bun compare une mesure de 38 °C de greenhouse-01 à un seuil de 35 °C, formate 14:05 en 2:05 PM avec dayjs et envoie une demande d'inspection du refroidissement à une API de maintenance, qui renvoie 201 Created

Par exemple, un capteur de serre signale 38 °C. Votre Analysis Bun peut lire les données de l’appareil, les combiner avec les informations du site et formater l’horodatage à l’aide d’un package. Elle appelle ensuite l’API de votre système de maintenance pour créer une intervention : “Inspecter le refroidissement.”

Vous fournissez les identifiants d’accès au service et le format de la requête. La même approche convient pour envoyer des mesures mises en forme à une API de reporting ou enrichir la fiche d’un appareil avec des données récupérées dans un autre système.

Bun face aux autres runtimes

  • Node.js : compilez et testez un script sous forme de bundle en local, puis envoyez-le. Bun transfère la compilation et le regroupement des dépendances dans TagoIO : vous pouvez modifier directement le TypeScript dans Admin.
  • Deno : les deux runtimes permettent de maintenir du TypeScript dans l’éditeur. Bun utilise directement les noms des packages dans les imports ; Deno utilise des spécificateurs npm: ou des URL.
  • Python : conservez-le pour les traitements de données qui dépendent de bibliothèques comme pandas, numpy ou scipy. Choisissez Bun lorsque la tâche se prête à JavaScript ou TypeScript et à leurs packages.

L’exécution hébergée avec Bun est décomptée de la limite mensuelle Analysis Service de votre profil.

Comparez la vitesse des runtimes sur une même tâche

Comparaison du traitement de données de capteurs avec différents runtimes :

Temps d'exécution médian
Runtime1 000 relevés100 000 relevés
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

Chaque runtime utilise la version hébergée par TagoIO. Luau s’exécute directement dans TagoIO sans lancer de processus séparé : ses temps ne couvrent donc que le script. Les autres runtimes lancent un nouveau processus à chaque exécution, et ce démarrage représente l’essentiel de leur temps avec 1 000 relevés.

L’effet de la vitesse sur la consommation

Pour Bun, Deno, Node.js et Python, une exécution hébergée plus rapide peut réduire la consommation Analysis Service si elle passe à une tranche de facturation inférieure. Chaque exécution est facturée pour une seconde au minimum : des écarts inférieurs à une seconde ne suffisent donc pas, à eux seuls, à démontrer une économie.

Compilez et testez dans Admin

Créez une Analysis, choisissez Bun (bun-rt2026) dans Runtime, puis sélectionnez TagoIO sous Runs on. Écrivez votre script dans l’éditeur et enregistrez une version. Vérifiez l’absence d’erreurs de build dans la Console, puis cliquez sur Run pour l’exécuter et examiner ses logs.

TagoAI peut vous aider à écrire et déboguer votre script.

Pour commencer

Consultez le guide des runtimes Analysis, puis créez une Analysis dans Admin. Les notes de version du 13 octobre présentent l’arrivée de Bun.