Skip to content

feat!: support opt-in S3 URLs and simplify protocol registration - #87

Closed
PsiACE wants to merge 7 commits into
fsspec:mainfrom
PsiACE:feat/fsspec-protocol-routing
Closed

PsiACE wants to merge 7 commits into
fsspec:mainfrom
PsiACE:feat/fsspec-protocol-routing

Conversation

@PsiACE

@PsiACE PsiACE commented Aug 30, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #86.

Rationale

Allow applications to use OpenDAL with existing s3:// URLs and supported s3fs options, without changing the S3 implementation unless explicitly requested.

Changes

  • Add S3FileSystem for explicit registration through fsspec.register_implementation("s3", S3FileSystem, clobber=True). Each instance is scoped to one bucket; full s3fs compatibility is not provided.
  • Remove register_opendal_service() and register_opendal_protocols(). Use OpendalFileSystem directly for other services, or the fsspec registration API for custom filesystem classes.
  • Keep the existing opendal+s3, opendal+gcs, and opendal+azblob entry points unchanged. Installing or importing opendalfs does not override s3.
  • Update usage documentation and downstream integration examples.

Validation

  • Test suite: 357 passed, 1 skipped.
  • Documentation examples: 18 passed, with S3 examples executed against local MinIO.
  • Strict Sphinx build passed.

AI Usage Statement

AI assisted with design, implementation, documentation, and local validation. S3 compatibility is limited to the documented options and tested behaviors.

@PsiACE PsiACE changed the title Feat/fsspec protocol routing feat: define standard and configured protocol routing Aug 30, 2026
@Xuanwo

Xuanwo commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Have an opendal://xxx is wired. Maybe we should allow users to just register opendalfs as s3://xxx?

@PsiACE

PsiACE commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Have an opendal://xxx is wired. Maybe we should allow users to just register opendalfs as s3://xxx?

this PR also includes that part.

@Xuanwo

Xuanwo commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

My key point is about "Have an opendal://xxx is wired".

@PsiACE
PsiACE force-pushed the feat/fsspec-protocol-routing branch 2 times, most recently from ec54961 to 16444b8 Compare September 1, 2026 11:32
Add an explicitly registered S3 adapter with s3fs option aliases and a single-bucket path boundary. Include URL parity, misrouting regressions, UPath acceptance, and the MinIO environment required to run its documentation.
Use installed protocols for URL consumers and explicit filesystems, file objects, or mappings elsewhere. Preserve cross-backend coverage where downstream APIs accept an instance, and migrate runnable examples with their acceptance tests.
Remove dynamic filesystem generation and its service mapping after migrating repository consumers. Keep installed service protocols and direct OpenDAL filesystem construction.

BREAKING CHANGE: register_opendal_service and register_opendal_protocols are removed. Use installed opendal+s3, opendal+gcs, or opendal+azblob protocols, or construct OpendalFileSystem directly for other services.
@PsiACE
PsiACE force-pushed the feat/fsspec-protocol-routing branch from c6fdd00 to 371b86c Compare September 6, 2026 08:52
@PsiACE PsiACE changed the title feat: define standard and configured protocol routing feat!: support opt-in S3 URLs and simplify protocol registration Sep 6, 2026
@PsiACE PsiACE closed this Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose OpenDAL service protocols through fsspec entry points

2 participants