État de la pile Web

seed expédie un transport Web minimal opérationnel plus porté policy/validation forfaits. Il n'existe toujours pas de framework Web complet en langage clair : les façades de service intégrées (web, web_core l'exécution, web_runtime, webapp, websocket_server) restent archivés jusqu'à ce que la boucle persistante de connexion à la réponse, l'annulation et la fuite d'arrêt soient fermées de bout en bout.

Surface opérationnelle actuelle

Package/capability Surface actuelle
web_core tranche de transport opérationnelle : configuration de l'écouteur avec réutilisation d'adresses, lectures bloquantes limitées, analyseur request-line/header sans copie, routage method/path sans allocation, générateur de réponses limité, nouvelle tentative d'écriture complète (EINTR)
http_server tranche d'analyseur uniquement : analyseur de requêtes HTTP/1.1 limité sans allocation (http_server_available() == false) ; pas de propriété de connexion, de corps persistants, fragmentés ou TLS
http_client, http_fetch, tls13 côté client HTTP/1.1 sur TCP brut ou TLS 1.3 (G12/G14); redirections limitées, délais d'attente et cadrage
std-web-request, std-web-response cible de forme d'origine délimitée et validation status/body-limit (G15, pas de I/O)
std-web-security cookie sécurisé, CSP, et cadre politique (G15)
std-web-static chemins relatifs sûrs pour la traversée (G15) ; le fichier qui se sert lui-même appartient à l'application
std-web-template escaped/raw-mode politique avec validation de texte sécurisé (G15)
std-web-middleware, std-web-db priorités ordonnées et validation des requêtes indépendante du backend (G15/G16)
std-router validation du modèle d'itinéraire uniquement ; Les registration/dispatch sont les futures couches
oauth (grove/libs/oauth) Noyau de serveur d'autorisation OAuth 2.0 intégré sur Ridge: enregistrement, PKCE, échange de code, rotation de rafraîchissement, révocation familiale (flow test vert ; intégration de site ouverte)
net, io, byte_buffer, text, parse, task, bytes/shared_bytes, str/tranches fondations : prises possédées, typées I/O, tampons initialisés, curseur de jeton, analyse vérifiée, concurrence structurée, propriété vérifiée binary/text vues

Éléments toujours de la feuille de route (non opérationnels) : TLS serveur, analyse du corps de la requête, transfert fragmenté, propriété de la connexion persistante, cancellation/drain et le service WebSocket.

Preuve déployée

Grove corpus Web

Les sources d'ancienne génération restent sous grove/libs/ (par exemple web, web_request, web_response, web_runtime, web_middleware, web_security, web_static, web_template, web_db, web_metrics). Il s'agit de portages d'entrées, pas de packages propres actuels : par ex.

./seed/seed check grove/libs/web/src/lib.sd

échoue 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. Utilisez le std-* ports et web_core à la place.

Exigences pour les nouveaux packages Web

Un package Web Grove devient actuel uniquement après avoir satisfait à tous les critères suivants :

  1. Utilise une syntaxe propre du serpent inférieur et transmet le message opérationnel parser/type vérificateur.
  2. Remplace les appels d'exécution implicites hérités par des packages ordinaires actuels ou interfaces d'exécution auditées explicites.
  3. Utilise les tranches bytes/shared_bytes détenues et empruntées pour les requêtes binaires et organismes de réponse.
  4. Rend visibles l’allocation, le blocage, la panique, I/O, FFI et les effets dangereux.
  5. Encode la propriété des sockets, des connexions, du corps de la requête et du tampon de réponse avec nettoyage précis.
  6. 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.
  7. Fournit des erreurs typées pour l'analyse, le transport, TLS, le délai d'attente et l'application échecs.
  8. Produit et consomme les interfaces .sdi actuelles sans secours de source.
  9. Déclare les exigences platform/runtime et fournit le INSTALL.md pour FFI.
  10. 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 les couches de diffusion archivées soient fermées, la documentation seed ne doit pas revendiquer la prise en charge actuelle de :

Service limité par bouclage dans le Ridge Admin modèle, le web_core tranche de transport, la G15/G16 ports de stratégie, et le oauth les flux sont couverts par leurs lignes de base et leurs tests nommés, et peuvent être revendiqués exactement comme en témoignent.

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.

Tranches suivantes

La tranche de transport demandée par l’ancienne feuille de route existe désormais (web_core). Les prochaines tranches crédibles, dans l’ordre, sont :

1. request-body parsing (bounded, Content-Length; then chunked)
2. persistent connection loop: keep-alive, cancellation, shutdown drain
3. TLS server
4. dispatch router + static-file serving on the verified loop
5. session/middleware composition on std-* policies + oauth

Le routage, le middleware, le TLS, le pooling, les modèles et les couches d'application supérieures doivent s'appuyer sur la tranche de transport vérifiée plutôt que de conserver les API héritées uniquement pour la compatibilité des sources.

Suivez les priorités de l’écosystème dans Feuille de route de la bibliothèque. Le courant compiler/library la limite est documentée dans Operational Library Reference, et Grove les règles de compatibilité sont dans Grove Arbre de compatibilité. Gate preuve : G11 (crypto/session/jwt), G12/G14 (HTTP client), G15/G16 (ports de stratégie Web, diffusion archivée) sous seed/compiler/llvm/tests/GROVE_G*.md.