feat: upgrade object_store to 0.14, reqwest to 0.13, unpin worker#114
Draft
alukach wants to merge 1 commit into
Draft
feat: upgrade object_store to 0.14, reqwest to 0.13, unpin worker#114alukach wants to merge 1 commit into
alukach wants to merge 1 commit into
Conversation
object_store 0.14 moves to reqwest 0.13 (wasm-streams 0.5), which resolves the conflict that pinned worker to 0.7.4. The three changes are interlocked by the shared wasm-streams version, so they land together. - object_store: use composed `aws-base` + `reqwest` + `ring` features instead of the `aws` meta-feature, which now hard-wires the aws-lc-rs crypto provider that does not build on wasm32. Same for `azure`/`gcp` in multistore's passthrough features (now `-base` variants). - crates/core: add reqwest dep to guarantee a TLS backend for object_store's built-in transport in standalone builds. - reqwest 0.13: `rustls-tls` feature renamed to `rustls`; `.form()` split into an opt-in `form` feature. - cf-workers: add getrandom 0.4 and ring wasm feature shims for the new wasm32 dependency graph. - ListResult gained an `extensions` field; populate in test fixtures. - worker: unpin to 0.7.5+ and refresh the stale pin comments in CI, wrangler configs, and docs. worker 0.8 is now unblocked but is a separate upgrade. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What I'm changing
object_store0.13 held the whole dependency tree back: it required reqwest 0.12 (wasm-streams 0.4), which conflicted withworker0.7.5+ (wasm-streams 0.5), forcing theworker = "=0.7.4"pin and blockingworker-build0.8. object_store 0.14 moves to reqwest 0.13, so this PR takes all three interlocked bumps together: object_store 0.14, reqwest 0.13, and worker unpinned to 0.7.5+.The catch: object_store 0.14's
aws/azure/gcpmeta-features now hard-wire theaws-lc-rscrypto provider, which does not build on wasm32 — its build script demands a backend feature that only reqwest's native-only rustls stack enables. This PR switches to the upstream-documented composable features so the wasm32 (Cloudflare Workers) target keeps building.How I did it
Cargo.toml:object_store0.14 withaws-base+reqwest+ringinstead ofaws—ringprovides signing on all targets including wasm32, and keepsaws-lc-rsout of the wasm graph.reqwestbumped to0.13.2(first release on wasm-streams 0.5) withrustls-tlsrenamed torustlsper reqwest 0.13.workerunpinned from=0.7.4to0.7.5; the old tracking comment (Pluggable Crypto / Update reqwest 0.13 apache/arrow-rs-object-store#707) is resolved by this PR.crates/core:azure/gcppassthrough features now map to object_store'sazure-base/gcp-base(the full variants pull aws-lc-rs and break wasm). Added a directreqwestdep — not used by code, it guarantees reqwest'srustlsTLS backend is enabled for object_store's built-in transport whenmultistoreis built standalone; without it object_store's client code fails to compile (this is what upstream's meta-features did viareqwest/rustls).crates/core/src/api/list.rs:ListResultgained anextensionsfield in 0.14; test fixtures populate it withDefault::default().crates/cf-workers/examples/cf-workers: added agetrandom0.4wasm_jsshim alongside the existing v0.2/v0.3 ones (object_store 0.14 pulls rand 0.10 → getrandom 0.4), and enabledring/wasm32_unknown_unknown_jsso ring-based signing has a randomness backend on wasm32.examples/*: reqwest 0.13 split.form()into an opt-informfeature; enabled it in the three example crates that call it.worker-build ^0.7comments that referenced the removed=0.7.4pin. worker 0.8 + worker-build 0.8 are now unblocked, but that's a separate breaking upgrade.Test plan
cargo check(workspace) andcargo check -p multistorestandalone, with and without--features azure,gcpcargo check -p multistore-cf-workers --target wasm32-unknown-unknown, with and without--features azure,gcp, plus-p multistore-cf-workers-examplecargo test— 222 tests passcargo clippyclean,cargo fmtmultistore-serveragainst seeded MinIO (docker compose) — anonymous GET/HEAD via presigned backend URLs and ListObjectsV2 through object_store's reqwest transport all return correct results, exercising the new ring signing path🤖 Generated with Claude Code