github sleep3r/mtproto.zig v0.14.7

latest releases: v1.15.1, v1.15.0, v1.14.1...
5 months ago

v0.14.7: Upstream Hardening and Safer Startup Limits

🇷🇺 Что нового (RU)

Что решает этот релиз

  • Делает маршрутизацию исходящих подключений предсказуемой и явной: теперь используется единая точка настройки [upstream].type.
  • Укрепляет handshake/relay hot-path под нагрузкой: меньше лишних аллокаций, корректнее обработка partial I/O, ниже риск деградации на пиках.
  • Исправляет критичный fail-open сценарий при запуске: safety clamp для max_connections теперь работает в fail-closed режиме.

Что изменено

  • Upstream abstraction: добавлен выделенный транспортный слой upstream с единым connect API — это готовая точка расширения под будущие backend'ы.
  • Handshake path hardening: оптимизированы горячие участки relay/handshake, снижено давление на allocator, добавлен отдельный handshake-path benchmark и CI-проверка на регрессии.
  • Config cleanup: удален legacy-алиас [tunnel].type; поддерживается только [upstream].type = "auto" | "direct" | "amnezia_wg".
  • Capacity safety fix: startup теперь считает RAM capacity один раз, применяет clamp при unsafe_override_limits = false и не продолжает запуск, если safety enforcement невозможен.

Важно (миграция)

  • Если в конфиге все еще используется [tunnel].type, перенесите значение в [upstream].type.
  • Для туннельных инсталляций рекомендуется явно задать [upstream].type = "amnezia_wg".

🇬🇧 Release notes (EN)

What this release addresses

  • Makes outbound routing explicit and predictable by standardizing on [upstream].type.
  • Hardens the handshake/relay hot path under load by reducing allocation pressure and improving partial I/O behavior.
  • Fixes a critical startup fail-open path so max_connections RAM safety now behaves fail-closed when override is disabled.

What changed

  • Upstream abstraction: introduced a dedicated upstream transport interface (connect-based), creating a clean extension point for future backends.
  • Handshake path hardening: optimized hot-path internals, improved memory behavior, and added a dedicated handshake-path benchmark with CI coverage.
  • Config cleanup: removed legacy [tunnel].type alias; [upstream].type is now the single supported egress selector.
  • Capacity safety fix: startup now computes capacity once, enforces clamping when unsafe_override_limits = false, and refuses startup if safety cannot be enforced.

Important migration note

  • If your config still uses [tunnel].type, migrate it to [upstream].type.
  • For tunnel deployments, set [upstream].type = "amnezia_wg" explicitly.

0.14.7 (2026-04-10)

Refactors

  • proxy: introduce generic upstream transport abstraction (#148) (956b5a6)
  • proxy: harden handshake path and finalize upstream config (#150) (719eff6)
  • config: drop legacy [tunnel] alias (#151) (64e9424)

Bug Fixes

  • main: enforce fail-closed max_connections safety clamp (#152) (24ea08c)

Don't miss a new mtproto.zig release

NewReleases is sending notifications on new releases.