Estado de la pila web
seed Actualmente no ofrece un marco web operativo en lenguaje limpio. el nivel superior Grove El árbol contiene una pila web histórica sustancial, pero sus paquetes principales no se han adaptado a la sintaxis, el modelo de propiedad, las interfaces y los contratos de tiempo de ejecución del sistema operativo. LLVM compilador.
Superficie operativa actual
El compilador limpio actualmente presenta solo los fundamentos relevantes para el futuro trabajo web:
| Package/capability | Superficie actual |
|---|---|
net |
Apertura de socket de flujo IPv4 propio y acceso a descriptores. |
web_core |
bloqueo acotado HTTP lecturas de encabezado, análisis de encabezado de solicitud de copia cero y escrituras completas con EINTR reintentar |
io |
entrada partial/read-all escrita y salida text/byte de escritura total |
byte_buffer |
construcción de búfer de bytes inicializado falible |
text |
cursor de token delimitado por ASCII sin asignación |
parse |
análisis de enteros comprobado |
task |
canales estructurados, uniones, eventos, cancelación y sincronización |
bytes / shared_bytes |
propiedad binaria única mutable y compartida de solo lectura |
str / rebanadas |
vistas prestadas comprobadas que preservan la procedencia |
Esto es suficiente para construir y probar componentes de red de nivel inferior, pero aún no es una solución. HTTP servidor, enrutador, sistema middleware, TLS pila, motor de plantillas, capa de sesión o tiempo de ejecución web de producción.
Grove corpus web
Directorios como estos existen en 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
Conservan una importante API y el trabajo de implementación de una generación de lenguaje anterior. Están transfiriendo entradas, no paquetes limpios actuales. Por ejemplo:
./seed/seed check grove/libs/web/src/lib.sd
Actualmente falla durante el análisis porque la fuente utiliza nombres nominales heredados en mayúsculas y formas adicionales reemplazadas. En consecuencia, los ejemplos que devuelven tipos como WebAppStable, WebContext, o WebResponse no debe presentarse como limpio operativo seed código.
Requisitos para una pila web operativa
Un paquete web Grove se vuelve actual solo después de que cumple con todo lo siguiente:
- Utiliza una sintaxis limpia de serpiente inferior y pasa la prueba operativa. parser/type inspector.
- Reemplaza las llamadas de tiempo de ejecución heredadas implícitas con paquetes ordinarios actuales o interfaces de tiempo de ejecución auditadas explícitas.
- Utiliza
bytes/shared_bytesde propiedad y sectores prestados para solicitudes binarias y órganos de respuesta. - Hace visibles la asignación, el bloqueo, el pánico, I/O, FFI y los efectos inseguros.
- Codifica la propiedad del socket, la conexión, el cuerpo de la solicitud y el búfer de respuesta con limpieza exacta.
- Conserva la procedencia input/receiver para el encabezado, la ruta, la consulta y la copia cero. vistas del cuerpo.
- Proporciona errores escritos para análisis, transporte, TLS, tiempo de espera y aplicación. fracasos.
- Produce y consume interfaces
.sdiactuales sin respaldo de fuente. - Declara requisitos platform/runtime y suministra
INSTALL.mdpara FFI. - Pasa positivo, negativo, desinfectante, entrada mal formada, cancelación y separate-compilation tests.
Reclamaciones de producción
Hasta que se cumplan esos requisitos, la documentación seed no debe reclamar soporte actual para:
- producción HTTP servicio o enrutamiento;
- TLS client/server verificación;
- middleware de marco, sesiones, CSRF, CORS, plantillas o archivos estáticos;
- WebSockets;
- Rendimiento del producto compatible con TechEmpower a través de la pila limpia;
- Uso directo de las importaciones web Grove por parte de las aplicaciones actuales.
Los puntos de referencia históricos sobre el código Grove pueden permanecer como evidencia histórica etiquetada explícitamente. No establecen soporte operativo para el idioma actual.
Dirección de portabilidad
El corte vertical creíble más pequeño es:
owned socket → bounded read into initialized byte buffer
→ checked request-line/header parser over borrowed views
→ owned response bytes → write_all → exact connection cleanup
El enrutamiento, el middleware, el TLS, la agrupación, las plantillas y las capas de aplicaciones superiores deben basarse en ese segmento de transporte verificado en lugar de preservar las API heredadas únicamente por compatibilidad de origen.
Realice un seguimiento de las prioridades del ecosistema en Hoja de ruta de la biblioteca. la corriente compiler/library El límite está documentado en Referencia de la biblioteca operativa, y Grove las reglas de compatibilidad están en Grove Árbol de compatibilidad.