Skip to content

turnloop 0.1.0-alpha.1

Pre-release
Pre-release

Choose a tag to compare

@proggeramlug proggeramlug released this 14 Sep 21:01
· 163 commits to main since this release

First public alpha of turnloop: an embeddable, cross-platform event-loop driver that the host turns, with completion-shaped I/O and zero tokio. Pre-alpha quality: APIs will change.

Crates (all 0.1.0-alpha.1)

Crate What it is
turnloop Core loop: bounded turn(), timers, per-loop notifier and poster, exactly-once completions, TCP/UDP/AF_UNIX, stdio, processes, signals, TTY, external waits, blocking pool, executor. Backends: epoll (Linux), kqueue (macOS/BSD), WASI 0.2, WASI 0.3 (experimental), web. The IOCP backend is in progress (#4).
turnloop-tls Sans-IO TLS on rustls's unbuffered API
turnloop-http Our own HTTP/1.1 + HTTP/2 (HPACK, flow control), fetch-style client policies; h2spec strict 147/147
turnloop-websocket WebSocket on the tungstenite protocol core
turnloop-postgres, turnloop-mysql, turnloop-redis, turnloop-mongodb, turnloop-smtp Sans-IO protocol clients, tested against real servers
turnloop-zstd-decoder Pure-Rust zstd decoder (derived from ruzstd)
turnloop-wasi-random WASI entropy for WASI 0.3 targets

What's verified

CI on the release commit passed all 37 required jobs:

  • Linux x86_64/arm64 in every feature mode, macOS, Windows
  • WASI 0.2/0.3 contracts
  • Chrome and Firefox
  • protocol suites against real PostgreSQL, MySQL, Redis (cluster, sentinel), MongoDB (replica set) and SMTP
  • h2spec
  • Miri, loom
  • deterministic instruction-count gates
  • the zero-tokio, soak and cargo-deny gates

Design: DESIGN.md.