/
nv-lang
/
nova-http
Обзор
Документация
Войти
/
nv-lang
/
nova-http
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
src/version.nv
37 строк
2 KB
Evgeniy Golovin
203 Ф.1: nova-http repo — перенос std/src/http/** в src/** (root peers D78 rev-4)
13 июл 2026, 13:12
13 июл 2026, 13:12
d971228
Код
Авторство
О чём код?
// SPDX-License-Identifier: MIT OR Apache-2.0 // nova-http: version.nv — HTTP-версия (D358). Extracted from monorepo // std/http (Plan 203 Ф.1). // // Версия НАБЛЮДАЕТСЯ на Request/Response, но выбирается транспортом (ALPN, gate // 116, или явный h2c). HTTP/0.9 не поддерживается (устарел, source of smuggling). // // OPEN (D358): добавление `Http3` (§11) не должно ломать exhaustive-match — // пользовательский код ДОЛЖЕН нести wildcard-arm при разборе версии. (Языкового // #open-атрибута нет — свойство конвенциональное; wildcard рекомендуется в доке.) module http /// HTTP-версия. OPEN — при разборе крыть wildcard-arm (forward-compat h3). #stable(since = "0.1") export type Version enum Http10 | Http11 | Http2 /// Версия на проводе (request-/status-line). #stable(since = "0.1") export fn Version @str() -> str { match @ { Http10 => "HTTP/1.0" Http11 => "HTTP/1.1" Http2 => "HTTP/2" } } /// Поддерживает ли keep-alive по умолчанию. HTTP/1.0 — только при явном /// `Connection: keep-alive`; HTTP/1.1 и HTTP/2 — да по умолчанию. #stable(since = "0.1") export fn Version @supports_keepalive() -> bool { match @ { Http10 => false Http11 => true Http2 => true } }