19 points par GN⁺ 2026-01-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • OpenWorkers est un runtime open source qui exécute JavaScript sur V8, permettant de mettre en place de l’edge computing sur sa propre infrastructure
  • Prend en charge le stockage KV, PostgreSQL, le stockage compatible S3/R2, les service bindings, ainsi que les variables d’environnement et secrets
  • Maintient une forte compatibilité avec Cloudflare Workers, y compris les principales API Web comme fetch, ReadableStream et crypto.subtle
  • Permet un auto-hébergement simple grâce à un sandbox V8 Isolate, à la planification cron et à un déploiement basé sur Docker Compose
  • Projet développé pendant environ 7 ans, avec pour objectif un environnement d’exécution JavaScript sans dépendance à un fournisseur

Présentation d’OpenWorkers

  • OpenWorkers est un runtime compatible Cloudflare Workers écrit en Rust, qui exécute JavaScript à l’aide de V8 Isolate
    • Il permet de profiter des avantages de l’edge computing même dans un environnement de serveurs autogéré
    • Distribué en open source, il peut être librement déployé et modifié

Fonctionnalités principales

  • La fonctionnalité de bindings permet l’intégration avec diverses ressources externes
    • Stockage KV : prise en charge de get, put, delete et list
    • Intégration avec une base de données PostgreSQL
    • Prise en charge du stockage compatible S3/R2
    • Inclut les service bindings, ainsi que la gestion des variables d’environnement et des secrets
  • Prise en charge des API Web
    • Fournit des API standard comme fetch, Request, Response et ReadableStream
    • Inclut crypto.subtle, TextEncoder/Decoder, Blob, setTimeout et AbortController

Architecture

  • Le système se compose d’un proxy nginx, d’un tableau de bord, d’une API, d’un service de logs, de runners, de PostgreSQL, de NATS et d’un planificateur
    • Chaque runner exécute le code dans un V8 Isolate, avec des limites de 100 ms de CPU et 128 Mo de mémoire
    • Inclut un planificateur intégré prenant en charge une syntaxe cron à 5 ou 6 champs
    • Conserve une compatibilité syntaxique avec Cloudflare Workers

Auto-hébergement

  • Le déploiement est possible avec une seule base de données PostgreSQL et un fichier Docker Compose
    • Peut être lancé facilement avec les commandes git clone, la configuration de .env et docker compose up
    • Inclut les procédures de migration et de génération de token

Contexte de développement

  • Projet abouti après environ 7 ans de développement
    • Au départ, il expérimentait le sandboxing JS avec vm2, puis a évolué en s’inspirant du modèle Cloudflare Workers
    • Après un passage par Deno-core, il a été réécrit sur la base de rusty_v8
  • L’objectif est de fournir une expérience développeur (DX) au niveau de Cloudflare Workers tout en construisant un environnement d’exécution sur serveur propre, sans dépendance à un fournisseur
  • À l’avenir, l’ajout d’une fonctionnalité d’enregistrement et de relecture de l’exécution est prévu pour permettre le debug déterministe (deterministic debugging)

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.