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. |
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)#
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#
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#
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#
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 :
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 :
- Variable d'environnement
BUN_PATH which bun(recherchePATH)/usr/local/bin/bun,/usr/bin/bun$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 :
bext-server version
Sortir:
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 :
[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#
- Moteur de rendu V8 — configuration de la fonctionnalité
v8une fois compilée dans - Moteur CSS Rust — configuration pour la fonctionnalité
route-css - bext.config.toml : configuration d'exécution associée aux fonctionnalités de compilation
- Variables d'environnement — indicateurs d'exécution qui complètent les choix au moment de la construction
- Architecture : référence de caisse – ce que chaque caisse fournit et comment les fonctionnalités y sont mappées