From 27cd880c327a45d30ae038cbf3d6a1d6e44bd3d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Tue, 15 Sep 2026 02:57:59 +0200 Subject: [PATCH] Release 0.1.0-alpha.2 Adds turnloop-io (the shared async adapter layer) as a new crate, the Windows IOCP backend, async PostgreSQL/MySQL/Redis/SMTP/MongoDB clients on turnloop-io, async TLS/HTTP/WebSocket adapters, and WASI 0.2 DNS through Backend::resolve. --- Cargo.lock | 28 +++++++++++++-------------- Cargo.toml | 16 +++++++-------- docs/INTEGRATION_REPORT.md | 4 ++-- protocols/turnloop-mongodb/README.md | 2 +- protocols/turnloop-mysql/README.md | 2 +- protocols/turnloop-postgres/README.md | 2 +- protocols/turnloop-redis/README.md | 2 +- protocols/turnloop-smtp/README.md | 2 +- 8 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fe487d6..07b48cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1763,7 +1763,7 @@ dependencies = [ [[package]] name = "turnloop" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "futures-io", "js-sys", @@ -1777,7 +1777,7 @@ dependencies = [ [[package]] name = "turnloop-bench" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "gungraun", "libc", @@ -1787,7 +1787,7 @@ dependencies = [ [[package]] name = "turnloop-contract" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "bson", "futures-io", @@ -1804,7 +1804,7 @@ dependencies = [ [[package]] name = "turnloop-http" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "base64", "brotli", @@ -1823,7 +1823,7 @@ dependencies = [ [[package]] name = "turnloop-io" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "futures-io", "turnloop", @@ -1832,7 +1832,7 @@ dependencies = [ [[package]] name = "turnloop-mongodb" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "base64", "bson", @@ -1853,7 +1853,7 @@ dependencies = [ [[package]] name = "turnloop-mysql" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "bytes", "flate2", @@ -1867,7 +1867,7 @@ dependencies = [ [[package]] name = "turnloop-postgres" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "base64", "bytes", @@ -1882,7 +1882,7 @@ dependencies = [ [[package]] name = "turnloop-redis" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "rustls", "turnloop-io", @@ -1891,7 +1891,7 @@ dependencies = [ [[package]] name = "turnloop-smtp" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "base64", "email-encoding", @@ -1903,7 +1903,7 @@ dependencies = [ [[package]] name = "turnloop-tls" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "rcgen", "ring", @@ -1915,7 +1915,7 @@ dependencies = [ [[package]] name = "turnloop-wasi-random" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "getrandom 0.3.4", "getrandom 0.4.3", @@ -1923,7 +1923,7 @@ dependencies = [ [[package]] name = "turnloop-websocket" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "base64", "bytes", @@ -1937,7 +1937,7 @@ dependencies = [ [[package]] name = "turnloop-zstd-decoder" -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" dependencies = [ "criterion", "fastrand", diff --git a/Cargo.toml b/Cargo.toml index 80b574f..e554a84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,17 +4,17 @@ exclude = ["spikes/*"] resolver = "3" [workspace.package] -version = "0.1.0-alpha.1" +version = "0.1.0-alpha.2" edition = "2024" rust-version = "1.97.1" license = "MIT" repository = "https://github.com/PerryTS/turnloop" [workspace.dependencies] -turnloop-io = { path = "crates/turnloop-io", version = "0.1.0-alpha.1" } -turnloop-wasi-random = { path = "crates/turnloop-wasi-random", version = "0.1.0-alpha.1" } -turnloop = { path = "crates/turnloop", version = "0.1.0-alpha.1" } -turnloop-contract = { path = "crates/turnloop-contract", version = "0.1.0-alpha.1" } +turnloop-io = { path = "crates/turnloop-io", version = "0.1.0-alpha.2" } +turnloop-wasi-random = { path = "crates/turnloop-wasi-random", version = "0.1.0-alpha.2" } +turnloop = { path = "crates/turnloop", version = "0.1.0-alpha.2" } +turnloop-contract = { path = "crates/turnloop-contract", version = "0.1.0-alpha.2" } libc = "=0.2.175" futures-io = "=0.3.31" @@ -38,9 +38,9 @@ serde_json = "1" getrandom = "0.4" loom = "=0.7.2" gungraun = "=0.19.4" -turnloop-tls = { path = "protocols/turnloop-tls", version = "0.1.0-alpha.1" } -turnloop-http = { path = "protocols/turnloop-http", version = "0.1.0-alpha.1" } -turnloop-zstd-decoder = { path = "protocols/turnloop-zstd-decoder", version = "0.1.0-alpha.1" } +turnloop-tls = { path = "protocols/turnloop-tls", version = "0.1.0-alpha.2" } +turnloop-http = { path = "protocols/turnloop-http", version = "0.1.0-alpha.2" } +turnloop-zstd-decoder = { path = "protocols/turnloop-zstd-decoder", version = "0.1.0-alpha.2" } http = "1" url = "2" httparse = "1" diff --git a/docs/INTEGRATION_REPORT.md b/docs/INTEGRATION_REPORT.md index f0e24d0..fe894d9 100644 --- a/docs/INTEGRATION_REPORT.md +++ b/docs/INTEGRATION_REPORT.md @@ -344,7 +344,7 @@ lettre's quoted_printable dependency; no advisory was ignored. ## Publish order and bootstrap -All packages currently use **0.1.0-alpha.1**. The metadata-derived order is: +All packages currently use **0.1.0-alpha.2**. The metadata-derived order is: 1. `turnloop` 2. `turnloop-io` (shared executor/stream adapters) @@ -363,7 +363,7 @@ This is the current metadata-derived order (`python3 scripts/ci/release.py order turnloop-io follows turnloop and precedes every async protocol adapter. TLS and the decoder precede HTTP; HTTP precedes WebSocket. The independent database and SMTP crates may otherwise be reordered. `turnloop-contract` and `turnloop-bench` -remain private. Every package is version 0.1.0-alpha.1. +remain private. Every package is version 0.1.0-alpha.2. `cargo publish --dry-run --locked --allow-dirty --workspace` stages unpublished siblings together, packages each crate and recompiles each packaged library. diff --git a/protocols/turnloop-mongodb/README.md b/protocols/turnloop-mongodb/README.md index 84c1d76..9a40cb8 100644 --- a/protocols/turnloop-mongodb/README.md +++ b/protocols/turnloop-mongodb/README.md @@ -11,7 +11,7 @@ for the precise coverage and remaining conformance work. ## Getting started on turnloop -Enable `turnloop-mongodb = { version = "0.1.0-alpha.1", features = ["turnloop"] }` +Enable `turnloop-mongodb = { version = "0.1.0-alpha.2", features = ["turnloop"] }` and use the `asynchronous` module: `Client::connect/command/cursor and Cursor::next/close`. The default feature set remains sans-I/O. The adapter reuses `turnloop-io`; the host owns `LocalExecutor` and calls `turn`. Spawn local futures through its handle and keep their `JoinHandle`s until completion. diff --git a/protocols/turnloop-mysql/README.md b/protocols/turnloop-mysql/README.md index a4647d7..94ef850 100644 --- a/protocols/turnloop-mysql/README.md +++ b/protocols/turnloop-mysql/README.md @@ -6,7 +6,7 @@ in the default sans-I/O feature set. The crate forbids unsafe. TLS and entropy a ## Getting started on turnloop -Enable `turnloop-mysql = { version = "0.1.0-alpha.1", features = ["turnloop"] }` +Enable `turnloop-mysql = { version = "0.1.0-alpha.2", features = ["turnloop"] }` and use the `asynchronous` module: `Connection::connect, query, prepare/execute, begin and Pool::acquire`. The default feature set remains sans-I/O. The adapter reuses `turnloop-io`; the host owns `LocalExecutor` and calls `turn`. Spawn local futures through its handle and keep their `JoinHandle`s until completion. diff --git a/protocols/turnloop-postgres/README.md b/protocols/turnloop-postgres/README.md index b169449..f73ded1 100644 --- a/protocols/turnloop-postgres/README.md +++ b/protocols/turnloop-postgres/README.md @@ -6,7 +6,7 @@ clock, schedules a timer or generates entropy. The sans-I/O code forbids unsafe. ## Getting started on turnloop -Enable `turnloop-postgres = { version = "0.1.0-alpha.1", features = ["turnloop"] }` +Enable `turnloop-postgres = { version = "0.1.0-alpha.2", features = ["turnloop"] }` and use the `asynchronous` module: `Client::connect, query, execute, copy_in/copy_out and notification`. The default feature set remains sans-I/O. The adapter reuses `turnloop-io`; the host owns `LocalExecutor` and calls `turn`. Spawn local futures through its handle and keep their `JoinHandle`s until completion. diff --git a/protocols/turnloop-redis/README.md b/protocols/turnloop-redis/README.md index 8518006..583e65f 100644 --- a/protocols/turnloop-redis/README.md +++ b/protocols/turnloop-redis/README.md @@ -30,7 +30,7 @@ transport failures use retry policy. The host reports transport/DNS/TLS errors. ## Getting started on turnloop -Enable `turnloop-redis = { version = "0.1.0-alpha.1", features = ["turnloop"] }` +Enable `turnloop-redis = { version = "0.1.0-alpha.2", features = ["turnloop"] }` and use the `asynchronous` module: `Client::command/pipeline, Subscriber::next, ClusterClient and sentinel`. The default feature set remains sans-I/O. The adapter reuses `turnloop-io`; the host owns `LocalExecutor` and calls `turn`. Spawn local futures through its handle and keep their `JoinHandle`s until completion. diff --git a/protocols/turnloop-smtp/README.md b/protocols/turnloop-smtp/README.md index 722c181..2a75310 100644 --- a/protocols/turnloop-smtp/README.md +++ b/protocols/turnloop-smtp/README.md @@ -59,7 +59,7 @@ under workspace `.tools/`. Test certificate keys are public fixture data. ## Getting started on turnloop -Enable `turnloop-smtp = { version = "0.1.0-alpha.1", features = ["turnloop"] }` +Enable `turnloop-smtp = { version = "0.1.0-alpha.2", features = ["turnloop"] }` and use the `asynchronous` module: `Transport::connect and send`. The default feature set remains sans-I/O. The adapter reuses `turnloop-io`; the host owns `LocalExecutor` and calls `turn`. Spawn local futures through its handle and keep their `JoinHandle`s until completion.