ENbext.dev
DocumentationConfiguration

Traduction automatique depuis l’anglais. Consulter l’original.

Sur cette page

Indicateurs de construction et de fonctionnalités

Le serveur bext utilise les indicateurs de fonctionnalité Cargo pour conserver le binaire léger. Activez uniquement ce dont votre déploiement a besoin.

Fonctionnalités disponibles#

Fonctionnalité Ce qu'il permet Quand tu en as besoin
v8 Moteur V8 SSR (instantanés de tas, TurboFan JIT) Par défaut. Le seul moteur de rendu pris en charge – requis pour SSR.
tls Auto-TLS (Let's Encrypt / ZeroSSL), SNI, OCSP Tout serveur de production servant HTTPS.
nginx-compat Analyseur.conf nginx intégré, mode mascarade Remplacement de nginx. Requis pour --nginx-masquerade.
php PHP/FastCGI (proxy SAPI + FPM intégré) WordPress, Laravel ou tout autre site PHP.
redis Redis pub/sub, sessions, cache distribué Mise à l'échelle horizontale sur plusieurs instances.
realtime Hub SSE + WebSocket, sujet pub/sub Fonctionnalités en temps réel (chat, notifications).
waf Pare-feu d'applications Web Filtrage IP, géoblocage, détection SQLi/XSS.
plugins WASM + QuickJS + bac à sable nsjail Exécution de plugins tiers.
websocket-proxy Passthrough proxy WebSocket en amont Proxy des connexions WebSocket vers les backends.
otel Traçage OpenTelemetry + métriques Pipelines d'observabilité (Jaeger, Grafana).
h3-quic HTTP/3 sur QUIC Prise en charge HTTP/3 de pointe.
ebpf Surveillance basée sur l'eBPF Observabilité au niveau du noyau.
react-compiler Compilateur React Rust (mémoire automatique) Expérimental. Optimise les bundles React au moment de la construction.
turbopack Regroupeur Turbopack en cours de processus Expérimental. Nécessite Rust la nuit.
route-css Génération CSS Tailwind native de Rust CSS par route, commande bext css, reconstruction en direct.
Conseil

Si vous n'êtes pas sûr des fonctionnalités incluses dans votre binaire, exécutez bext-server version - il imprime la liste complète des fonctionnalités compilées. Il s'agit du moyen le plus rapide de confirmer qu'une fonctionnalité a été incluse sans inspecter la commande de construction.

Profils de construction courants#

Développement (application unique)#

bash
cargo build -p bext-server --release

Utilise les fonctionnalités par défaut ( v8 + route-css ). Bon pour le développement local et les déploiements simples.

Production Remplacement du nginx#

bash
cargo build -p bext-server --release \
  --features nginx-compat,tls,php

Le minimum pour remplacer nginx sur un serveur avec des sites PHP.

Production avec V8#

bash
cargo build -p bext-server --release \
  --no-default-features \
  --features nginx-compat,tls,php,v8

Le V8 est le seul moteur SSR. --no-default-features dépose des bagages fonctionnels dont nous n'avons pas besoin pour ce profil.

Une production complète#

bash
cargo build -p bext-server --release \
  --no-default-features \
  --features nginx-compat,tls,redis,realtime,waf,v8,react-compiler,turbopack,php

Tout est activé. Nécessite nightly Rust pour la fonctionnalité turbopack :

bash
cargo +nightly-2026-04-02 build -p bext-server --release \
  --no-default-features \
  --features nginx-compat,tls,redis,realtime,waf,v8,react-compiler,turbopack,php,route-css

Détection de petits pains#

bext détecte automatiquement le binaire Bun pour la compilation à la demande. Ordre de détection :

  1. Variable d'environnement BUN_PATH
  2. which bun (recherche PATH )
  3. /usr/local/bin/bun, /usr/bin/bun
  4. $HOME/.bun/bin/bun

Remplacer par : export BUN_PATH=/path/to/bun

Vérification des fonctionnalités#

Vérifiez quelles fonctionnalités sont compilées dans un binaire :

bash
bext-server version

Sortir:

code
bext 0.1.2
build: release
features: v8, react-compiler, turbopack, tls, redis, realtime, waf, php, nginx-compat

Moteur de rendu#

Le bext est livré avec le V8 comme moteur SSR unique (via rusty_v8). Caractéristiques:

V8
Démarrage ~ 1 ms par travailleur (instantanés de tas)
JIT TurboVentilateur
Modèle de filetage compatible tokio (Envoyer), pool de travailleurs en cours
Récupération après incident Rechargement d'instantané d'environ 1 ms + marqueurs de crash par itinéraire (voir Isolation des collisions V8)
Configuration [render] workers = N — aucune sélection de moteur nécessaire

Un deuxième backend (WebKit/JavaScriptCore) existait historiquement ; il a été supprimé une fois que le démarrage à froid basé sur un instantané de V8 a rendu JSC redondant.

Profil de version#

L'espace de travail Cargo.toml configure une optimisation agressive :

toml
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = true

Les temps de construction sont d'environ 8 à 10 minutes avec LTO sur un serveur typique. Il s'agit en grande partie de l'étape finale de liaison.

En rapport#

Modifier cette page ↗Besoin d’aide ? ↗
Rechercher dans la documentation

Saisissez un sujet, une commande ou une question.