Skip to content

v0.19.0-beta

Pre-release
Pre-release

Choose a tag to compare

@rodrigoslayertech rodrigoslayertech released this 03 Jul 11:53
· 547 commits to main since this release

Focus: WebSocket Server + WebSocket Client + HTTP/2 Server

πŸ†• MINOR version

Changes

WPI β€” Web Programming Interface

  • βœ… WebSocket Server CLI (WPI/Nodes/WS_Server_CLI)
    • βœ… Handshake, frames, opcodes
    • βœ… Channels / rooms
    • βœ… Broadcasting (same-worker + cross-worker via per-worker datagram relay)
    • βœ… Ping/pong heartbeat
    • βœ… Auth handshake middleware (reuses v0.15 Authentication guards) + Origin gate (HandshakeRequested)
    • βœ… permessage-deflate (RFC 7692, ext-zlib)
    • βœ… Streaming UTF-8 validation + outbound fragmentation
    • βœ… wss:// (TLS)
  • βœ… WebSocket Client CLI (WPI/Nodes/WS_Client_CLI) β€” wire-compatible with WS_Server_CLI (verified via live E2E + Autobahn 1-7/12/13 = 0 FAILED) β€” committed + pushed to main (137f54c)
    • βœ… Self-contained codec duplicated in the client (own Message/Frame +masking, Message/UTF8, Handshake, Message DTO, inline permessage-deflate) β€” WS_Server_CLI NOT modified; the alpha-order rule (Client < Server) forbids importing the Server subtree, so the codec is duplicated by design
    • βœ… WS_Client_CLI extends TCP_Client_CLI implements WS, WS\Client (mirrors HTTP_Client_CLI) + WS/Client.php marker
    • βœ… Client handshake β€” generate Sec-WebSocket-Key, send upgrade GET, verify 101 + Sec-WebSocket-Accept
    • βœ… Frames, opcodes β€” outbound frames masked (RFC 6455 Β§5.1); inbound unmasked
    • βœ… Fragmentation (inbound reassembly + outbound send(fragment:))
    • βœ… Ping/pong heartbeat (auto-pong to server ping + client-initiated ping)
    • βœ… permessage-deflate (RFC 7692, ext-zlib) β€” client offer / negotiate
    • βœ… Streaming UTF-8 validation (JIT-safe PCRE validator)
    • βœ… wss:// (TLS)
    • βœ… Auth β€” send Bearer/Basic + Origin header on upgrade
    • βœ… Unit + E2E test suites (live WS_Server_CLI driven by the client) + Demo project + docs (en-US + pt-BR)
    • βœ… Auto-reconnect with backoff (client-only)
    • βœ… Autobahn client conformance β€” 462 cases / 0 FAILED (sections 1-7, 12, 13)
    • βœ… Multi-client β€” instance-scoped callbacks + concurrent live clients on one shared loop (non-blocking open() + static run())
  • βœ… HTTP/2 (over the existing HTTP_Server_CLI)
    • βœ… HPACK header compression
    • βœ… Binary framing layer
    • βœ… Stream multiplexing (concurrent requests on one connection)
    • βœ… Server push (optional β€” feature-flag)
    • βœ… ALPN negotiation on the existing TLS-capable HTTPS server

Commits

Features

feat β€” New features:

β€’ feat(WPI): add WS_Server_CLI (native RFC 6455 WebSocket server)
β€’ feat(WS_Client_CLI): native WebSocket client (RFC 6455 / RFC 7692)
β€’ feat: HTTP/2 Server implemetation (WIP)
β€’ feat(Cache): add in-process memory cache driver and related tests
β€’ feat(CLI): single-role Terminal Client/Server over an injected channel
β€’ feat(CLI): interactive terminals on emulated TTYs (BOOTGLY_TTY)
β€’ feat(CLI): embedded-runtime (WASM) compatibility + non-TTY hardening
β€’ feat(CLI): Mouse Reporting demo + parser hardening
β€’ feat(Benchmark/WS_Server_CLI): add WebSocket server benchmark project
β€’ feat(benchmark): derive HTTP_Server_CLI router from the load set
β€’ feat(ACI/Tests/Benchmark): mandatory --loads=<set>:<indexes> syntax
β€’ CLI: add Viewport (24) and Logs (25) demos; harden Logs viewer rendering
β€’ Demo/Progress: ASCII bar symbols, emoji spacing, 1M milestones

Fixes

fix β€” Bug fixes:

β€’ fix(WPI/HTTP2): harden h2 server per security audit S1-S6
β€’ fix(projects/Benchmark): deadlock-free TechEmpower /updates
β€’ fix(CLI): resolve the Client/Server role at Input construction
β€’ fix(Dockerfile, Dockerfile.dockerignore, docker-compose.yml): update paths and command syntax for clarity
β€’ fix(commands/Test): don't run case load-set validation under --help
β€’ fix(commands/Test): enforce mandatory --opponents and --loads in benchmark
β€’ fix(ACI/Tests/Benchmark): classify server run if any result has rps
β€’ CLI: fix Alert Attention contrast; stop BCE bleed in coloring demo
β€’ CLI: pin Alert Attention foreground to 256-color cube black

Implementations

docs β€” Documentation:

β€’ docs(README): update core principles for clarity and efficiency
β€’ docs: Updated README.md
β€’ docs: Updated README.md
β€’ docs: Updated README.md
β€’ docs: Updated README.md

chore β€” Maintenance:

β€’ chore(release): bump Dockerfile BOOTGLY_VERSION β†’ 0.18.0-beta


πŸ–Ό Highlights

  • WS_Server_CLI β€” native RFC 6455 WebSocket server: channels/rooms, cross-worker broadcast, permessage-deflate, auth handshake + Origin gate, streaming UTF-8, wss://.
  • WS_Client_CLI β€” native RFC 6455 / RFC 7692 client, wire-compatible with the server (Autobahn 1-7/12/13 = 0 FAILED), auto-reconnect + multi-client on one shared loop.
  • HTTP/2 over HTTP_Server_CLI β€” HPACK, binary framing, stream multiplexing, optional server push, ALPN negotiation; hardened per security audit S1-S6.