Status da pilha da Web
seed envia um transporte web operacional mínimo e portado policy/validation pacotes. Ainda não existe uma estrutura web completa de linguagem limpa: as fachadas de serviço integradas (web, web_core tempo de execução, web_runtime, webapp, websocket_server) permanecem arquivados até que o loop persistente de conexão para resposta, o cancelamento e a drenagem de desligamento sejam fechados de ponta a ponta.
Superfície operacional atual
| Package/capability | Superfície atual |
|---|---|
web_core |
Fatia de transporte operacional: configuração do ouvinte com reutilização de endereço, leituras de bloqueio limitadas, analisador request-line/header de cópia zero, roteamento method/path livre de alocação, construtor de resposta limitada, repetição de gravações completas (EINTR) |
http_server |
somente fatia do analisador: analisador de solicitação HTTP/1.1 limitado e livre de alocação (http_server_available() == false); sem propriedade de conexão, keep-alive, corpos fragmentados ou TLS |
http_client, http_fetch, tls13 |
lado do cliente HTTP/1.1 sobre TCP bruto ou TLS 1.3 (G12/G14); redirecionamentos limitados, tempos limite e enquadramento |
std-web-request, std-web-response |
destino de formulário de origem limitado e validação status/body-limit (G15, sem I/O) |
std-web-security |
cookie seguro, CSP e política de enquadramento (G15) |
std-web-static |
caminhos relativos seguros para travessia (G15); o arquivo que serve em si é de propriedade do aplicativo |
std-web-template |
escaped/raw-mode política com validação de texto seguro (G15) |
std-web-middleware, std-web-db |
prioridades ordenadas e validação de consulta neutra de back-end (G15/G16) |
std-router |
apenas validação de padrão de rota; registration/dispatch são camadas futuras |
oauth (grove/libs/oauth) |
núcleo do servidor de autorização OAuth 2.0 incorporado sobre Ridge: registro, PKCE, troca de código, rotação de atualização, revogação de família (teste de fluxo verde; integração de site aberta) |
net, io, byte_buffer, text, parse, task, bytes/shared_bytes, str/fatias |
fundações: soquetes próprios, digitados I/O, buffers inicializados, cursor de token, análise verificada, simultaneidade estruturada, visualizações binary/text com verificação de propriedade |
Ainda itens do roteiro (não operacionais): TLS servidor, análise do corpo da solicitação, transferência fragmentada, propriedade de conexão keep-alive, cancellation/drain e serviço WebSocket.
Evidência implantada
- Ridge Admin (
grove/apps/ridge-admin): aplicativo baseado em navegador servido por um locais seed processo em loopback – sessão autenticada, CSRF, origin/Host cheques, CSP, limitado HTTP análise, desligamento normal. Este é o padrão de referência para servir um site na pilha atual. - web-core-bench tracer: cria
web_corepor meio de compilação separada e atende uma solicitação de loopback limitada na porta 8080 (fumaça determinística; um servidor de benchmark multiworker persistente é uma etapa de escalabilidade separada).
Grove web corpus
Fontes de gerações mais antigas permanecem sob grove/libs/ (por exemplo, web, web_request, web_response, web_runtime, web_middleware, web_security, web_static, web_template, web_db, web_metrics). Eles estão portando entradas, não pacotes limpos atuais: por ex.
./seed/seed check grove/libs/web/src/lib.sd
falha durante a análise porque a origem usa nomes nominais legados em letras maiúsculas e formas substituídas adicionais. Consequentemente, exemplos que retornam tipos como WebAppStable, WebContext, ou WebResponse não deve ser apresentado como limpo operacional seed código. Use o std-* portos e web_core em vez disso.
Requisitos para novos pacotes web
Um pacote da web Grove se torna atual somente depois de satisfazer todos os seguintes itens:
- Usa sintaxe limpa de cobra inferior e passa o operacional parser/type verificador.
- Substitui chamadas implícitas de tempo de execução legadas por pacotes comuns atuais ou interfaces de tempo de execução auditadas explícitas.
- Usa
bytes/shared_bytespróprios e fatias emprestadas para solicitação binária e órgãos de resposta. - Torna visíveis a alocação, bloqueio, pânico, I/O, FFI e efeitos inseguros.
- Codifica propriedade de soquete, conexão, corpo de solicitação e buffer de resposta com limpeza exata.
- Preserva a proveniência input/receiver para cabeçalho, caminho, consulta e cópia zero vistas do corpo.
- Fornece erros digitados para análise, transporte, TLS, tempo limite e aplicativo falhas.
- Produz e consome interfaces
.sdiatuais sem fallback de origem. - Declara os requisitos platform/runtime e fornece
INSTALL.mdpara FFI. - Passa positivo, negativo, sanitizador, entrada malformada, cancelamento e separate-compilation tests.
Reivindicações de produção
Até que as camadas de serviço arquivadas sejam fechadas, a documentação seed não deve reivindicar suporte atual para:
- produção (persistente, multitrabalhador) HTTP servindo;
- TLS operação do servidor;
- sessões de estrutura, CORS ou pilhas middleware/WebSocket completas além do fatias policy/validation portadas;
- Desempenho de produto compatível com TechEmpower por meio da pilha limpa;
- uso direto de importações da web herdadas Grove (
web,webapp,…) por atual aplicações.
Serviço limitado de loopback no Ridge Admin padrão, o web_core fatia de transporte, o G15/G16 portos políticos, e o oauth fluxo são cobertos por suas linhas de base e testes nomeados e podem ser reivindicados exatamente como evidenciados.
Os benchmarks históricos sobre o código Grove podem permanecer como evidências históricas explicitamente rotuladas. Não estabelecem suporte operacional para a linguagem atual.
Próximas fatias
A fatia de transporte solicitada pelo antigo roteiro agora existe (web_core). As próximas fatias confiáveis, em ordem, são:
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
Roteamento, middleware, TLS, pooling, modelos e camadas superiores de aplicativos devem se basear na fatia de transporte verificada, em vez de preservar APIs legadas apenas para compatibilidade de origem.
Acompanhe as prioridades do ecossistema em Library Roadmap. O atual compiler/library limite está documentado em Referência da Biblioteca Operacionale Grove as regras de compatibilidade estão em Grove Árvore de compatibilidade. Gate evidência: G11 (crypto/session/jwt), G12/G14 (HTTP cliente), G15/G16 (portas de política da web, veiculação arquivada) em seed/compiler/llvm/tests/GROVE_G*.md.