Skip to content

feat(core): Re-export reqsign crates - #8346

Open
pavelzw wants to merge 1 commit into
apache:mainfrom
pavelzw:feat/re-export-reqsign
Open

pavelzw wants to merge 1 commit into
apache:mainfrom
pavelzw:feat/re-export-reqsign

Conversation

@pavelzw

@pavelzw pavelzw commented Sep 25, 2026 •

Copy link
Copy Markdown

Which issue does this PR close?

Closes #8345

Rationale for this change

Several service builders take reqsign types from the application, but none of those types are reachable through OpenDAL. An application that plugs in a credential provider of its own therefore has to depend on reqsign-core and the matching backend crate directly, and keep their versions compatible with the ones the service was built with by hand.

What changes are included in this PR?

  • opendal-core re-exports reqsign_core behind its existing reqsign feature.
  • Each signing service re-exports its backend crate: reqsign_aws_v4 from s3, reqsign_azure_storage from azblob and azdls, reqsign_google from gcs and gcs-grpc.
  • The docs of the seven builder methods that take reqsign types point at the re-exports.

Are there any user-facing changes?

New re-exports; no existing API changes.

Providers can now be implemented against opendal::reqsign_core and opendal::services::reqsign_* instead of direct reqsign dependencies. No new features or dependencies are added: every signing service already depends on its backend crate and already enables opendal-core/reqsign.

Breaking changes

AI Usage Statement

  • Harness: Claude Code
  • Model: Claude Opus 5
  • Effort: default
  • Role: wrote the re-exports and doc notes. I manually reviewed the code before creating this PR.

if the docstrings are too verbose for your taste, i'm happy to remove them as well.

…with

Several service builders take reqsign types from the application:
`S3::credential_provider_chain`, `Azblob::credential_provider_chain`,
`Azdls::credential_provider_chain`, and the `credential_provider` and
`credential_provider_chain` pair on `Gcs` and `GcsGrpc`. None of those
types were reachable through OpenDAL, so an application that wants to
plug in a credential provider of its own has to depend on `reqsign-core`
and the matching backend crate directly, and keep its versions compatible
with the ones the service was built with by hand.

Re-export `reqsign_core` from `opendal-core` behind the existing `reqsign`
feature, and the backend crate from each service that signs with it, so
the types an application implements against are the ones the service uses.
Point the docs of the seven builder methods at the re-exports.
@pavelzw
pavelzw requested a review from Xuanwo as a code owner September 25, 2026 18:43
@github-actions github-actions Bot added core releases-note/feat The PR implements a new feature or has a title that begins with "feat" size:M This PR changes 30-99 lines, ignoring generated files. labels Sep 25, 2026
@pavelzw

pavelzw commented Sep 25, 2026

Copy link
Copy Markdown
Author

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core releases-note/feat The PR implements a new feature or has a title that begins with "feat" size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

re-export reqsign crates

1 participant