État de la pile Web
seed ne fournit actuellement pas de framework Web opérationnel en langage propre. Le plus haut niveau Grove L'arborescence contient une pile Web historique substantielle, mais ses principaux packages n'ont pas été portés sur la syntaxe, le modèle de propriété, les interfaces et les contrats d'exécution du système opérationnel. LLVM compilateur.
Surface opérationnelle actuelle
Le compilateur propre ne met actuellement en scène que les fondations pertinentes pour le futur travail sur le Web :
| Package/capability | Surface actuelle |
|---|---|
net |
Ouverture du socket de flux IPv4 détenu et accès au descripteur |
web_core |
blocage limité HTTP lectures d'en-tête, analyse de l'en-tête de requête sans copie et écritures complètes avec EINTR réessayer |
io |
entrée partial/read-all tapée et sortie text/byte en écriture totale |
byte_buffer |
construction de tampon d'octets initialisée faillible |
text |
curseur de jeton délimité par ASCII sans allocation |
parse |
analyse d'entiers vérifiés |
task |
canaux structurés, jointures, événements, annulation et synchronisation |
bytes / shared_bytes |
propriété binaire unique, mutable et partagée en lecture seule |
str / tranches |
vues empruntées vérifiées et préservant la provenance |
C'est suffisant pour créer et tester des composants réseau de niveau inférieur, mais ce n'est pas encore une solution. HTTP serveur, routeur, système middleware, TLS pile, moteur de modèle, couche de session ou environnement d'exécution Web de production.
Grove corpus Web
Des répertoires comme ceux-ci existent sous grove/libs/:
web
web_core
web_request
web_response
web_runtime
web_middleware
web_security
web_static
web_template
web_db
web_metrics
websocket_server
Ils préservent l’important API et le travail de mise en œuvre d’une génération de langage antérieure. Ils portent des entrées, pas des packages propres actuels. Par exemple :
./seed/seed check grove/libs/web/src/lib.sd
échoue actuellement lors de l'analyse car la source utilise d'anciens noms nominaux en majuscules et des formes supplémentaires remplacées. Par conséquent, les exemples qui renvoient des types tels que WebAppStable, WebContext, ou WebResponse ne doit pas être présenté comme opérationnel propre seed code.
Exigences pour une pile Web opérationnelle
Un package Web Grove devient actuel uniquement après avoir satisfait à tous les critères suivants :
- Utilise une syntaxe propre du serpent inférieur et transmet le message opérationnel parser/type vérificateur.
- Remplace les appels d'exécution implicites hérités par des packages ordinaires actuels ou interfaces d'exécution auditées explicites.
- Utilise les tranches
bytes/shared_bytesdétenues et empruntées pour les requêtes binaires et organismes de réponse. - Rend visibles l’allocation, le blocage, la panique, I/O, FFI et les effets dangereux.
- Encode la propriété des sockets, des connexions, du corps de la requête et du tampon de réponse avec nettoyage précis.
- Préserve la provenance input/receiver pour l'en-tête, le chemin, la requête et les données sans copie. vues du corps.
- Fournit des erreurs typées pour l'analyse, le transport, TLS, le délai d'attente et l'application échecs.
- Produit et consomme les interfaces
.sdiactuelles sans secours de source. - Déclare les exigences platform/runtime et fournit le
INSTALL.mdpour FFI. - Réussit le positif, le négatif, le désinfectant, l'entrée malformée, l'annulation et separate-compilation tests.
Allégations de production
Jusqu'à ce que ces exigences soient remplies, la documentation seed ne doit pas revendiquer une prise en charge actuelle pour :
- production HTTP desserte ou acheminement ;
- TLS client/server vérification;
- middleware de framework, sessions, CSRF, CORS, modèles ou fichiers statiques ;
- WebSockets ;
- Performances des produits compatibles TechEmpower grâce à la pile propre ;
- utilisation directe des importations Web Grove par les applications actuelles.
Les références historiques sur le code Grove peuvent rester des preuves historiques explicitement étiquetées. Ils n'établissent pas de support opérationnel pour la langue actuelle.
Sens de portage
La plus petite tranche verticale crédible est :
owned socket → bounded read into initialized byte buffer
→ checked request-line/header parser over borrowed views
→ owned response bytes → write_all → exact connection cleanup
Le routage, le middleware, le TLS, le pooling, les modèles et les couches d'application supérieures doivent s'appuyer sur cette tranche de transport vérifiée plutôt que de conserver les API existantes uniquement pour la compatibilité des sources.
Suivez les priorités de l’écosystème dans Library Roadmap. La limite actuelle de compiler/library est documentée dans Operational Library Reference, et les règles de compatibilité Grove se trouvent dans Grove Compatibility Tree.