bext/Guides de migrationBEXT / 06
Guides de migration

Apportez votre code.
Gardez votre élan.

Partez de vos outils actuels. Suivez les guides pour la gestion de paquets, les frameworks JavaScript, nginx et les applications PHP.

Ouvrir la documentation
FIG. 06 / MIGRATION
Une autre facette du moteur.
DANS CE CHAPITRE01Projets existants02Adaptateurs03Pas à pas
Gestionnaire de paquets

Depuis npm / yarn / pnpm

bext intègre un gestionnaire de paquets compatible npm, écrit en Rust. Vous pouvez remplacer entièrement votre gestionnaire actuel ou utiliser les deux en parallèle.

Remplacement direct

# Instead of: npm install
bext install

# Instead of: npm install lodash
bext install lodash

# Instead of: npx prettier --write .
bext x prettier --write .

# Instead of: npm run dev
bext ut run dev

# Instead of: npm publish
bext publish
Même format de lockfile
bext lit et écrit les fichiers package-lock.json standard. La bascule est transparente : votre lockfile existant fonctionne tel quel.

Correspondance complète des commandes

  • npm install → bext install (alias: bext i)
  • npm uninstall → bext uninstall (alias: bext un)
  • npx → bext x
  • npm run → bext ut run
  • npm link → bext link (alias: bext ln)
  • npm view → bext view
  • npm publish → bext publish
  • npm init → bext ut init

Première installation

# Download the package manager companion
bext download ut

# Install dependencies from your existing package.json
bext install

Ce que vous y gagnez

  • Performances natives de Rust : des installations nettement plus rapides qu'avec npm
  • Un seul binaire pour tout : plus besoin d'installer Node.js ou npm séparément
  • Bundler Turbopack intégré via bext pack
  • Prise en charge des workspaces, avec exécution des scripts dans l'ordre des dépendances
Next.js

Depuis Next.js

bext est conçu pour remplacer directement vos déploiements Next.js. Il implémente plus de 25 API Next.js, notamment next/navigation, next/headers, next/cache, next/image, next/link, next/dynamic, next/font/google et d'autres. La plupart des applications migrent en moins d'une heure.

Étape 1 : installer bext

curl -fsSL https://bext.dev/install | sh

Étape 2 : remplacer la commande de démarrage

package.json
{
  "scripts": {
-   "start": "next start",
+   "start": "bext start",
-   "dev": "next dev",
+   "dev": "bext dev"
  }
}
Détection automatique
bext détecte automatiquement les projets Next.js et applique les bonnes transformations. Aucun fichier de configuration n'est nécessaire pour la plupart des applications.

Étape 3 : déployer

bext deploy

Ce qui change

  • Edge Functions → server actions bext
  • ISR de la plateforme → cache ISR bext (avec protection anti-stampede)
  • Analytics de la plateforme → métriques Prometheus bext
  • next/image → optimisation d'images bext
  • Middleware → WAF bext et règles de routage
Express

Depuis Express

bext détecte automatiquement les applications Express. L'adaptateur Express reprend vos gestionnaires de routes, votre chaîne de middlewares et vos gestionnaires d'erreurs, sans modifier le code.

Étape 1 : pointer bext sur votre projet

bext run .
Zéro configuration
bext recherche app.js, server.js ou le point d'entrée déclaré dans package.json. Le routage Express, les middlewares et les fichiers statiques sont gérés automatiquement.

Ce que vous y gagnez

  • TLS automatique : plus besoin de certbot ni de gestion manuelle des certificats
  • HTTP/2 et HTTP/3 sans configuration
  • Limitation de débit, WAF et protection DDoS intégrés
  • Cache ISR pour vos réponses API
  • Traces OpenTelemetry sans instrumentation supplémentaire
Hono

Depuis Hono

Les applications Hono fonctionnent sur bext sans modification. L'adaptateur Hono conserve votre arbre de routes et vos middlewares, tout en ajoutant en dessous la couche d'infrastructure de bext.

Étape 1 : pointer bext sur votre projet

bext run .

Ce que vous y gagnez

  • Déploiement en binaire unique : aucun runtime Node.js ou Bun requis sur le serveur
  • TLS automatique, HTTP/3 et compression gérés au niveau du serveur
  • WAF, limitation de débit et observabilité intégrés
  • Routage multi-application : servez plusieurs applications Hono depuis une seule instance bext
nginx

Depuis nginx

C'est la fonctionnalité phare. Pointez bext sur votre nginx.conf existant, et tout fonctionne directement. bext prend en charge 68 directives nginx sur 70, dont les blocs location, les pools upstream, proxy_pass, try_files, rewrite, la configuration SSL et plus encore.

Migration en une commande

bext-server run .
Détection automatique
bext-server run . détecte automatiquement nginx.conf dans le répertoire courant et démarre sans modifier la configuration. Votre configuration existante est analysée, validée et traduite en routage natif bext au démarrage.

Mode masquerade pour nginx

Dans les environnements qui attendent un vrai processus nginx, bext peut se faire entièrement passer pour nginx :

# Install the nginx shim — bext replaces nginx transparently
bext-server nginx install

# bext writes a PID file, responds to SIGHUP for config reload,
# exposes the cache purge API, and installs a systemd override
# so "systemctl restart nginx" controls bext instead.

Ce que vous y gagnez

  • HTTP/3 QUIC, alors que nginx nécessite un build séparé ou NGINX Plus
  • TLS automatique via ACME : plus de tâche cron certbot
  • WAF intégré, détection des robots et atténuation des attaques DDoS
  • Tableau de bord d'administration en temps réel, diffusé en SSE
  • Un seul binaire statique : ni modules, ni liaisons dynamiques
PHP

Depuis Laravel / Symfony

bext inclut des adaptateurs pour les frameworks PHP et un runtime PHP embarqué avec une SAPI personnalisée. Ni php-fpm, ni Apache, ni nginx : seulement bext.

Laravel

cd /path/to/your-laravel-app
bext-server run .

bext détecte artisan et composer.json, identifie le framework Laravel et configure le runtime PHP embarqué avec la bonne racine de documents, les règles de réécriture et la gestion des sessions.

Symfony

cd /path/to/your-symfony-app
bext-server run .

La détection Symfony utilise bin/console et config/bundles.php. L'adaptateur configure le contrôleur frontal, les variables d'environnement et le répertoire de cache.

Prise en charge des micro-frameworks PHP
Les applications PHP sans framework sont également prises en charge. bext sert index.php directement via le runtime embarqué, sans installation PHP séparée.

Ce que vous y gagnez

  • Plus de gestionnaire de processus php-fpm : bext gère nativement les pools de workers
  • TLS automatique et HTTP/2 sans configurer Apache ni nginx
  • Cache ISR intégré pour les pages PHP rendues
  • Déploiement en binaire unique : livrez bext, pas une stack LAMP
Hébergement managé

Depuis les plateformes d'hébergement managées

bext vous offre tout ce que proposent les plateformes managées, mais en auto-hébergement sur votre propre infrastructure. Un seul binaire remplace l'intégralité de la plateforme.

Déployer sur votre propre serveur

# Build your project as usual
bext build

# Deploy to your server
bext deploy --host your-server.com

Correspondance des fonctionnalités

  • ISR de la plateforme → cache ISR bext avec stale-while-revalidate et protection anti-stampede
  • Edge Functions / Edge Middleware → server actions bext et règles WAF
  • Analytics de la plateforme → endpoint Prometheus bext
  • Optimisation d'images de la plateforme → redimensionnement et conversion de format à la volée par bext
  • Gestionnaires de formulaires → moteur de flux durables bext
  • Fonctions serverless → routes API bext avec runtime persistant (pas de cold start)
  • CDN / Edge Network → cache hiérarchique bext (L1 mémoire + L2 Redis)
Aucune dépendance à un fournisseur
Votre code reste identique. bext implémente les API qu'attend votre framework : vous migrez votre infrastructure, pas votre application.

Prêt à migrer ?

La plupart des migrations prennent moins d'une heure. Commencez avec le guide de démarrage rapide.

CommencerDocumentation