ENbext.dev
DocumentationArchitecture

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

Sur cette page

Référence de caisse

Cette page documente chaque caisse de l'espace de travail bext. Utilisez-le pour trouver où se trouve une fonctionnalité, quels types elle expose et comment les caisses dépendent les unes des autres. Pour la présentation de haut niveau et la matrice des indicateurs de fonctionnalités, voir Présentation de l'architecture.

L'espace de travail contient environ 38 caisses de niveau supérieur plus environ 33 caisses d'implémentation de référence sous crates/bext-impls/. La version des fonctionnalités par défaut relie V8 + le bundle bext - turbopack ; tout le reste est limité aux fonctionnalités, donc une construction minimale reste petite.

Serveur + noyau#

bext -serveur#

Binaire principal — serveur HTTP actix-web, routeur de mascarade, vhost.

Propriété Valeur
Chemin crates/bext-server
Binaire bext-server
Cela dépend bext -core, bext -license et toutes les caisses facultatives via des indicateurs de fonctionnalité

Modules clés :

Module Responsabilité
handler Gestionnaire de requêtes principal, pipeline SSR, cache de compression, répartition PRISM
ssr_pipeline Répartition par framework ( PRISM, Next.js, Hono, gestionnaire de récupération, RSC)
bundler Bun et bext - Invocation de turbopack
bun_pool Pool de travailleurs Bun pour le chemin de compatibilité Next.js
admin Panneau d'administration SPA + API JSON
dev Serveur de développement (pont HMR, superposition d'erreurs, observateur de fichiers)
cli CLI basée sur les applaudissements ( run, build, start, deploy, plugins, dx, cert )
auth_* Middleware d'authentification de base et d'authentification proxy
cache_purge API d'invalidation de balise/chemin
git_deploy Gestionnaire de hook git push-to-deploy
h3 Écouteur HTTP/3 (QUIC) (dépendant des fonctionnalités)
image_proxy_handler Transformations d'images à la volée
upgrade Mise à niveau sans temps d'arrêt via le passage de socket

bext -noyau#

Logique partagée sur le serveur, le plug-in NAPI et les outils CLI.

Propriété Valeur
Chemin crates/bext-core
Dépendances Aucun dans l'espace de travail bext (feuille pour la logique de base)
Indicateurs de fonctionnalités clés v8, plugins, redis, otel

Modules clés :

Module Responsabilité
transform Transformations du code source (voir Transformer le pipeline ) — inclut prism_compile.rs, la passe de pliage JSX au moment de la construction
route Découverte d'itinéraires par convention de système de fichiers
framework Registre Framework + détection ( Next.js, PRISM, Hono, Astro, etc.)
cache Cache ISR, cache à l'échelle du locataire, protection contre les bousculades, périmé pendant la revalidation
compress Compression Brotli, gzip, zstd
stream Pipeline SSR de streaming avec transfert fragmenté
html_rewrite Remplacement de l'îlot de serveur, extraction des indices de préchargement
image Optimisation de l'image (redimensionnement, conversion de format, espaces réservés de flou)
intern Stage en chaîne pour les chemins chauds
islands / islands_first Comptabilité de l'îlot serveur
js_bridge Pont NAPI pour bext-plugin
flow Moteur d'exécution à fonctions durables "use flow"
rsc Génération de charge utile des composants serveur React
codegen Code généré pour les actions du serveur et les charges utiles de vol
seo Génération de plan du site et de robots.txt
auth Trait du fournisseur d'authentification + prise en charge JWT/cookie
host_fns ABI de fonction hôte partagé avec les plugins V8/QuickJS
observability Aides au traçage, journalisation structurée
og Génération d'images à graphe ouvert
scheduler Planificateur Cron + enregistrement des tâches
static_router Routeur d'actifs statiques
storage Trait KV-store + backend en mémoire
worker Chignon-travailleur FFI

bext -impls#

Implémentations de traits qui collent le noyau bext à des écosystèmes facultatifs.

Un répertoire de petites caisses d'adaptateurs. Chacun implémente un trait défini dans bext-core ou bext-plugin-api. La version de base ne lie aucun d’entre eux ; Les fonctionnalités de bext-server choisissent celles que vous souhaitez.

Caisse Trait qu'il met en œuvre Back-end
bext-auth-jwt AuthProvider Vérificateur RS256/ES256 JWT
bext-session-cookie SessionStore Session de cookies cryptés
bext-session-redis SessionStore Session sauvegardée par Redis
bext-tracer-stdout TracerProvider Traçage de ligne JSON vers la sortie standard
bext-tracer-otlp TracerProvider Exportateur OpenTelemetry OTLP
bext-cron Scheduler tokio-cron-planificateur
bext-mailer-smtp Mailer SMTP par lettre
bext-mailer-ses Mailer AWS SES
bext-webhook-verifiers WebhookVerifier Stripe, GitHub, Slack, HMAC générique
bext-flags-static FlagProvider Indicateurs de fonctionnalités TOML
bext-flags-openfeature FlagProvider SDK OpenFeature
bext-storage-s3 Storage Magasin d'objets compatible S3
bext-i18n-static I18nProvider Catalogue de messages JSON
bext-i18n-fluent I18nProvider Projet Fluent ( .ftl )
bext-locking-memory Lock Mutex en cours
bext-locking-redis Lock Verrouillage rouge
bext-locking-pg Lock Verrous consultatifs Postgres
bext-policy-cedar AuthzPolicy Cèdre AWS
bext-policy-cel AuthzPolicy Langage d'expression commun
bext-search-meili SearchClient Meilisearch
bext-search-pg SearchClient Postgres FTS
bext-transform-py Transform Transformations Pyodide (Python-in-WASM) - squelette
bext-ratelimit-lua RateLimiter Seau Redis avec script Lua
bext-workflow-pg Workflow Échafaudé pour les flux de travail durables Postgres
bext-validate-jsonschema Validator Schéma JSON
bext-validate-cue Validator CUE
bext-router-legacy Router Matcheur d'itinéraire hérité (rétro-compatibilité)
bext-tmpl-tera Template Téra
bext-tmpl-handlebars Template Guidon
bext-tmpl-liquid Template Liquide
bext-pay-stripe Payments Bande
bext-pay-lemonsqueezy Payments Pressé au Citron
bext-experiment-hash Experiment Seau de hachage A/B

Ceux-ci sont délibérément petits. Choisissez ceux dont vous avez besoin ; rien d'autre n'entre en ligne de compte.

bext-licence#

Validation de la clé de licence Ed25519 hors ligne.

Propriété Valeur
Chemin crates/bext-license
Toujours lié Oui

Types de clés : LicensePayload, Tier, Feature, validate_key(). Délai de grâce de 14 jours après expiration ; les fonctionnalités du moteur restent actives.

bext-keygen#

Utilitaire de génération de clé de licence (binaire).

Propriété Valeur
Chemin crates/bext-keygen
Binaire bext-keygen

Outil interne. Signe les blobs LicensePayload avec la clé privée Ed25519.

PRISM / pipeline-cadre#

bext-turbopack#

API directe autour d'utoo / Turbopack — Bundle JSX/TSX → JS.

Propriété Valeur
Chemin crates/bext-turbopack
Activé par Fonctionnalité bext-server turbopack (activée par défaut)

Possède les sites d'appel Passe de compilation PRISM. Deux hooks appellent bext-core::transform::prism_compile :

  • compile_closure — source d'entrée lors de la compilation à la première demande
  • transform_with_analysis_opts — chaque importation transitive traversée par le bundler

Modules : direct (compiler les points d'entrée, l'intégration de transformation, la marche de clôture transitive et le TscRsPipeWorker qui pilote le sous-processus tsc-rs --pipe), prism (configuration du bundle spécifique à PRISM + échafaudage de test d'équivalence d'octets), registry (cache de module compilé), watcher (observateur de fichiers invalidant le registre lors de l'enregistrement).

Le transpile TSX→JS réel est délégué au frontend tsc-rs ; Turbopack gère la résolution des modules, le parcours de fermeture transitive et l'assemblage de paquets. Le flux complet du temps de demande se trouve dans le Pipeline de rendu PRISM.

bext-v8#

Isolat rusty_v8 SSR.

Propriété Valeur
Chemin crates/bext-v8
Activé par Fonctionnalité bext-server v8 (activée par défaut)

Modules : eval (isolat V8 + thread d'évaluation + caches de contexte chaud, utilisés à la fois par les compatibilités PRISM SSR et Next.js, avec la pompe de rendu en streaming vers la réponse HTTP), subprocess (client de pool de travailleurs hors processus + protocole de cadrage), multiplex (pilote coopératif exécutant N rendus par isolat), render_deadline (chien de garde in-V8 terminate_execution), bridge (pont JS↔Rust + récupération de bouclage), prism_pool (pool de rendu PRISM en cours), pool (pool d'isolement React par site hérité), snapshot (blob d'instantané de démarrage V8).

La topologie complète (configuration du processus, admission et contre-pression, chien de garde et disjoncteur, ainsi que l'autopsie du gel du 10/06/2026) se trouve dans le Piscine de rendu V8. Le même runtime isolé est réutilisé par bext-plugin-v8 pour le sandboxing des plugins. Voir Plugins V8.

bext - react -compilateur#

Intégration du compilateur SWC + React.

Propriété Valeur
Chemin crates/bext-react-compiler
Activé par Fonctionnalité bext-server react-compiler (activée par défaut)

Mémorisation automatique (compilateur React) pour les îlots clients et réduction des fonctions pures pour les chemins de code SSR uniquement. S'exécute dans le cadre des transformations source du bundler lorsque le compilateur React est activé dans bext.config.toml.

bext -css#

Moteur v4 Tailwind natif de Rust.

Propriété Valeur
Chemin crates/bext-css
Activé par Fonctionnalité bext-server route-css (activée par défaut)

Scanner utilitaire (parcourt les sources PRISM/JSX, extrait les noms de classe) et générateur de classe JIT. La sortie est un CSS de portée route extrait au moment de la construction et servi à partir du cache d’actifs. Aucun binaire de nœud tailwindcss n’est nécessaire.

bext -importation#

Scanner de directives « utiliser le serveur » / « utiliser le client » / « utiliser le cache » compatible AST.

Propriété Valeur
Chemin crates/bext-import

Utilisé par le bundler pour découvrir les limites avant de diviser le graphique en bundles client/serveur. Alimente le chemin de compilation RSC [framework] type = "nextjs" et les îlots PRISM.

bext -proxy#

Sous-système de proxy inverse.

Propriété Valeur
Chemin crates/bext-proxy
Toujours lié Oui

Pools en amont, équilibrage de charge, disjoncteurs, tentatives, proxy gRPC, proxy WebSocket. Extrait de bext-server en 2026-04 pour réduire le temps de reconstruction incrémentiel.

Extensions#

bext -plugin-api#

Définitions de traits et types partagés. Délibérément léger.

Propriété Valeur
Chemin crates/bext-plugin-api
Dépendances serde, serde_json (pas de caisses bext)

Types publics :

Taper Description
LifecyclePlugin Hooks de démarrage/arrêt/cache/rechargement du serveur
MiddlewarePlugin Interception de requête/réponse
TransformPlugin Transformation du code source
CacheBackend Stockage de cache personnalisé
PluginManifest Identité et capacités du plugin
PluginCapability Énumération : Transformation, Middleware, CacheBackend, Cycle de vie
SandboxType Énumération : Wasm, V8, QuickJs, Lua, Nsjail
SandboxPermissions Listes autorisées d'URL, quotas de stockage, limites de mémoire/durée

Les caisses d'invités WASM peuvent en dépendre sans avoir recours à Actix-Web, V8 ou quoi que ce soit d'autre de lourd.

bext -plugin#

Module complémentaire NAPI pour Bun (mode plugin natif).

Propriété Valeur
Chemin crates/bext-plugin

Utilisé lorsque bext est invoqué en tant que module natif Node/Bun (la version héritée du « plugin ») au lieu d'en tant que serveur autonome. Expose apply_source_transforms et le pool SSR sur NAPI.

bext -plugin-wasm#

wasmtime sandbox pour les plugins de cycle de vie WASM.

Propriété Valeur
Chemin crates/bext-plugin-wasm
Activé par Caractéristique bext-server plugins

Modules : adapter (pont de traits), host_functions (importations d'hôtes), kv (stockage limité), queue (file d'attente de messages), runtime (gestion des instances wasmtime), sandbox (limitation de débit, application des quotas, liste d'autorisation d'URL).

bext-plugin-v8#

V8 isole le bac à sable pour le plugin JS.

Propriété Valeur
Chemin crates/bext-plugin-v8
Activé par Caractéristique bext-server plugins

Niveau de plugin de première classe partageant le même moteur V8 que le pipeline SSR utilise (donc pas de temps d'exécution supplémentaire à expédier). Modèle de thread à thread épinglé par isolat, préemption du carburant via le chien de garde, ABI des fonctions JSON sur l'hôte. Voir Plugins V8.

bext -plugin-quickjs#

Bac à sable de l'interprète QuickJS.

Propriété Valeur
Chemin crates/bext-plugin-quickjs
Cela dépend bext -plugin-api, rquickjs
Activé par Caractéristique bext-server plugins

Optimisé pour une empreinte réduite et une interprétation déterministe. Modules : api (enregistrement mondial JS — console, bext.storage, bext.fetch, bext.config, bext.metric ), runtime (environnement d'exécution QuickJS avec limites de mémoire, limites de pile et application du délai d'expiration basé sur les interruptions).

bext -plugin-lua#

Exécution du plug-in Lua 5.4.

Propriété Valeur
Chemin crates/bext-plugin-lua
Cela dépend bext -plugin-api, mlua
Activé par Caractéristique bext-server plugins

Pour les auteurs de middleware qui préfèrent Lua. En mode bac à sable via le mode sans échec de mlua et une table de fonctions hôte similaire à la liaison V8.

bext -plugin-nsjail#

Bac à sable au niveau du processus avec IPC JSON-over-stdio.

Propriété Valeur
Chemin crates/bext-plugin-nsjail
Cela dépend bext -plugin-api
Activé par Caractéristique bext-server plugins

Modules : config (détection d'interprète depuis shebang/extension), ipc (protocole de ligne JSON avec une longueur de ligne maximale de 10 Mo), runtime (gestion des processus enfants), sandbox (configuration de l'espace de noms Linux lorsqu'il est disponible).

Réseaux + protocoles#

bext -tls#

Fourniture et gestion automatiques des certificats TLS.

Propriété Valeur
Chemin crates/bext-tls
Activé par Caractéristique bext-server tls

Types de clés : AcmeClient (Let's Encrypt / ZeroSSL), SniCertResolver (SNI multidomaine), OcspStapler (agrafage OCSP en arrière-plan), RenewalManager (renouvellement automatique), CertStore ( SQLite -stockage sauvegardé), OnDemandProvisioner (mise à disposition à première demande), MtlsConfig (certificats client TLS mutuels).

bext -temps réel#

Hub de pub/sub SSE et WebSocket.

Propriété Valeur
Chemin crates/bext-realtime
Indicateurs de fonctionnalités redis (relais inter-instances)
Activé par Caractéristique bext-server realtime

Types de clés : BextHub (courtier central), TopicAuth (règles d'autorisation par sujet), SseStream, WsSession, RedisRelay (nécessite Fonctionnalité redis).

bext -waf#

Pare-feu d’applications Web .

Propriété Valeur
Chemin crates/bext-waf
Activé par Caractéristique bext-server waf

Types de clés : WafDecision (Autoriser/Bloquer/RateLimit/Challenge), WafRequest, RuleEngine (SQLi/XSS/détection de traversée), IpFilter (listes CIDR), GeoBlocker, BotDetector, DdosGuard, EnhancedRateLimiter, WafAuditLog.

bext -ebpf#

Accélération au niveau du noyau eBPF.

Propriété Valeur
Chemin crates/bext-ebpf
Plate-forme Linux uniquement (pas d'opérations sur d'autres plateformes)
Activé par Caractéristique bext-server ebpf

Modules : xdp (filtrage de paquets), tracing_probes (demande d'uprobes en cascade), tcp (intelligence de connexion via sock_ops), seccomp (liste autorisée d'appels système pour les sandbox de plug-in), capability (détection des capacités Linux).

bext -php#

PHP SAPI intégré pour l'exécution PHP en cours de processus.

Propriété Valeur
Chemin crates/bext-php
Nécessite PHP 8.2+ avec --enable-embed --enable-zts
Activé par Caractéristique bext-server php

Types de clés : PhpPool (pool de threads de nœuds de calcul PHP), PhpState (descripteur de niveau supérieur pour AppState).

bext-protocole-mqtt#

Courtier de passerelle MQTT 5.

Propriété Valeur
Chemin crates/bext-protocol-mqtt
Activé par Caractéristique bext-server protocol-mqtt

Routage des sujets, QoS 0/1/2, sessions persistantes, messages conservés. Ponts vers bext-realtime afin que les clients SSE/WebSocket puissent s'abonner au même espace de noms de sujet.

bext -protocole-grpc#

Prise en charge de gRPC propriétaire.

Propriété Valeur
Chemin crates/bext-protocol-grpc
Activé par Caractéristique bext-server protocol-grpc

registre de services basé sur tonique, gestion des codecs, transcodage gRPC-Web afin que les navigateurs puissent appeler les mêmes services sans couche proxy.

bext -protocole- caldav#

Prise en charge du protocole CalDAV / CardDAV.

Propriété Valeur
Chemin crates/bext-protocol-caldav
Activé par Caractéristique bext-server protocol-caldav

Méthodes WebDAV, iCalendar, vCard. Utile pour les surfaces CRM/calendrier.

Compatibilité nginx#

bext - nginx -compatible#

Analyseur et convertisseur nginx.conf.

Propriété Valeur
Chemin crates/bext-nginx-compat
Activé par Caractéristique bext-server nginx-compat

Modules : lexer, ast (configuration nginx AST), convert (configuration AST → bext), detect (détection automatique de nginx.conf sur disque). Alimente le « mode mascarade » dans lequel bext remplace nginx sans aucun changement de configuration du côté de l'opérateur.

bext - nginx -cale#

Remplacement binaire nginx.

Propriété Valeur
Chemin crates/bext-nginx-shim
Binaire nginx (en cas de lien symbolique)
Activé par Caractéristique bext-server nginx-compat

Imite l'interface de ligne de commande nginx : fichier PID, rechargement SIGHUP, génération de remplacement systemd. Permet à bext de s'asseoir derrière l'existant Flux de travail systemctl reload nginx.

Adaptateurs de framework#

Chaque adaptateur implémente le trait FrameworkAdapter de bext-core. La détection examine les fichiers package.json/config ; créer des shells sur la propre CLI du framework ; serve exécute la sortie produite via bext SSR ou sous la forme d'un ensemble d'actifs statiques.

Caisse Chemin Détecte
bext-framework-astro crates/bext-framework-astro astro.config.{js,ts,mjs}
bext-framework-qwik crates/bext-framework-qwik Projet de ville Qwik
bext-framework-solidstart crates/bext-framework-solidstart Projet SolidStart
bext-framework-sveltekit crates/bext-framework-sveltekit Projet SvelteKit

PRISM est et non un adaptateur de framework - il appartient à bext-core (la passe de compilation) et à bext-turbopack (les sites d'appel). Next.js et Hono sont gérés en ligne dans le pipeline SSR de bext-server plutôt que via un adaptateur de caisse.

Outillage / DX#

bext -dx#

Moteur d’expérience développeur.

Propriété Valeur
Chemin crates/bext-dx

Format TOML/lint, plugin/infra/route graph, provenance env, magasin secret. Partagé par la CLI bext et la bext-lsp.

bext -lsp#

Serveur de langue pour bext.config.toml.

Propriété Valeur
Chemin crates/bext-lsp

Réutilise les règles bext -dx afin que VS Code, Zed, nvim et Helix partagent tous un seul moteur de diagnostic. Complétions, survols, "aller à la définition du plugin".

bext -tui#

Tableau de bord de gestion des terminaux.

Propriété Valeur
Chemin crates/bext-tui

Interface utilisateur de déploiement en direct/diffusion de journaux basée sur Ratatui. Utile pour les serveurs sans tête sur lesquels vous souhaitez regarder un déploiement à partir d'un TTY.

bext-banc-historique#

Magasin d’historique des performances.

Propriété Valeur
Chemin crates/bext-bench-history

Base de données d'historique de performances basée sur SQLite, utilisée par le tableau de bord de référence et le détecteur de régression CI. Stocke les numéros de référence par validation (SSR µs/req, TTFB, taille du bundle, etc.) afin que les régressions soient interceptées avant leur expédition.

Faisceaux d'essai#

Vivez sous harnesses/ (la plupart sont également membres de l'espace de travail et partagent donc des artefacts de build) :

Harnais Chemin Ce qu'il couvre
conformité harnesses/conformance Suite de tests de conformité Next.js + spécification HTTP
écosystème harnesses/ecosystem Tests d'intégration pour les 6 adaptateurs de framework
sécurité harnesses/security Fuzzing, tests d'intrusion, sortie sandbox
jsx-fusillade harnesses/jsx-shootout Banc de débit SSR à 5 moteurs ( PRISM, Marko, Solid, React, Rust)
harnais-plug-in harnesses/plugin-harness Tests de conformité du plugin sandbox
banc de cache harnesses/cache-bench Test de référence du cache ISR
ssr-dev harnesses/ssr-dev Harnais de serveur de développement SSR PRISM contre ~/dev/apps/app
Sites harnesses/sites Sites de montage autonomes PRISM utilisés par les tests d'intégration
chignon harnesses/bun Harnais de compatibilité d'exécution Bun
t3 harnesses/t3 Intégration de la pile T3 (Next.js + tRPC + Prisma)
nginx -compatible harnesses/nginx-compat Corpus de test d'importation nginx.conf
navigateur harnesses/browser Tests de bout en bout du navigateur sans tête
compagnon harnesses/companion Tests de fumée pour l'application compagnon de bureau
exemples ssr harnesses/ssr-examples Scénarios SSR de référence pour la documentation

Caisses binaires#

Caisse Chemin Description
bext -serveur crates/bext-server Binaire du serveur principal
bext-keygen crates/bext-keygen Outil de génération de clé de licence (interne)
bext - nginx -cale crates/bext-nginx-shim Remplacement binaire nginx instantané

Combinaisons d'indicateurs de fonctionnalités#

bash
# Community (free) — minimal build, ~45s cold compile
cargo build --release -p bext-server --no-default-features

# Default — V8 + Turbopack + route-css + react-compiler
cargo build --release -p bext-server

# Pro — security + performance features
cargo build --release -p bext-server \
  --features "waf,h3-quic,redis,otel,plugins,nginx-compat,realtime,websocket-proxy"

# Enterprise — everything
cargo build --release -p bext-server --all-features

# Custom — pick what you need
cargo build --release -p bext-server --features "waf,redis,plugins"

Une construction minimale prend environ 45 secondes sur un MacBook Pro M2. La construction complète de la production avec v8 + turbopack + route-css + react-compiler + nginx-compat + tls + redis + realtime + waf + php + h3-quic prend ~5 minutes à froid et ~30 secondes à chaud. Voir Présentation de l'architecture pour le tableau complet des indicateurs de fonctionnalités.

Conseil

bext-plugin-api dépend uniquement de serde et serde_json de par sa conception — les caisses invitées WASM peuvent en dépendre sans avoir recours à actix-web, V8 ou bext -core. Conservez les nouveaux types partagés dans bext-plugin-api ou bext-core, jamais dans des caisses de fonctionnalités.

En rapport#

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

Saisissez un sujet, une commande ou une question.