Roadmap

Development plan for TrueAsync

TrueAsync Core

Language extension: coroutines, async I/O, structured concurrency, threads.

v0.1 — Foundation

2024Completed
  • Coroutines & Scheduler
  • Event loop (libuv)
  • spawn() / delay() / timeout()

v0.6 — Complete Async API

2026-03-14Completed
  • TaskGroup & TaskSet
  • Channels (buffered/unbuffered)
  • Future / FutureState
  • Pool with CircuitBreaker
  • Async File & Pipe I/O
  • TCP / UDP sockets
  • PDO connection pooling
  • FileSystemWatcher
  • CURL async
  • Deadlock diagnostics

v0.7 — Threads & Stabilization

Summer 2026Completed
  • spawn_thread() — cross-platform OS threads
  • Thread lifecycle (request startup/shutdown, TSRM)
  • Closure deep copy (op_array transfer via pemalloc)
  • Zval transfer between threads (scalars, strings, arrays)
  • RemoteException / ThreadTransferException
  • Bailout recovery (fatal errors in child threads)
  • Object transfer (declared properties)
  • Captured variables (use) in closures
  • ThreadPool with worker reuse
  • ThreadPool: bootloader + coroutine-mode + auto workers
  • ThreadChannel (cross-thread data exchange)
  • Thread cancellation (ThreadPool::cancel in coroutine-mode)
  • Future-style exception semantics for await(coroutine) (#139)
  • Test suite & stabilization

v0.8 — Stability & Correctness

2026-07-15Completed
  • Context API: strict get() / getLocal() semantics
  • Reactor timer correctness under CPU-bound coroutines
  • Channel: safe close semantics for foreach()
  • iterate(): correct concurrency accounting
  • Thread transfer: closure-cycle safety
  • Laravel adapter (laravel-spawn)

v0.9 — Framework Adapters

Q4 2026Planned
  • Framework integration layer
  • Symfony adapter
  • Migration guides

v1.0 — Stable Release

Target: PHP 8.6
November 2026Planned
  • Stable API
  • Production ready
  • PHP RFC submission

TrueAsync Server

Native HTTP/1.1/2/3 server inside the PHP process.

v0.6 — Native HTTP/1.1/2/3

2026-05Completed
  • HTTP/1.1 (llhttp 9.3.0, keep-alive, pipelining)
  • HTTP/2 (nghttp2, multiplexing, server push, rapid-reset mitigation)
  • HTTP/3 / QUIC (ngtcp2 + nghttp3, OpenSSL 3.5 QUIC API)
  • TLS 1.2 / 1.3 (OpenSSL 3.x, ALPN, hardened defaults)
  • Multi-protocol on a single port (ALPN / Upgrade)
  • Compression: gzip / brotli / zstd (H1/H2/H3)
  • Streaming request body (readBody)
  • Streaming response (send / sendable / trailers)
  • StaticHandler + precompressed sidecars + sendFile
  • CoDel backpressure + graceful drain
  • Multi-worker pool (setWorkers + bootloader + SO_REUSEPORT)
  • Per-request scope + request_context()
  • Bailout firewall (fatal does not crash server)
  • W3C Trace Context

v0.8 — Server-Sent Events

2026-06-27Completed
  • sseStart() / sseEvent() / sseComment() / sseRetry()
  • Same handler works over HTTP/1.1, HTTP/2 and HTTP/3
  • WHATWG-compliant event-stream framing

v0.9 — WebSocket

2026-07-01Completed
  • RFC 6455 upgrade from HTTP/1.1 and HTTP/2 (RFC 8441)
  • wss:// and permessage-deflate (RFC 7692)
  • Full-duplex send/recv, backpressure, keepalive ping/pong
  • Subprotocol negotiation (WebSocketUpgrade)
  • Autobahn|Testsuite conformance: 246/246

v0.11 — WebSocket Topics & Observability

2026-07-15Completed
  • Cross-worker WebSocket topics (MQTT-style pub/sub)
  • Cross-thread HttpServer::stop() in pool mode
  • Observability: getStats() + multi-sink structured logging
  • Client address API (getRemoteAddress / getRemotePort)

vNext — Protocols on the same listener

Planned
  • gRPC (over HTTP/2)