Follow-up to the entry-point discussion in #85.
Current behavior
fsspec discovers third-party filesystems from the fsspec.specs entry-point group. Each entry-point name is registered as an exact protocol and its filesystem class is imported lazily when the protocol is first used.
Because protocol lookup is exact, an opendal+<service> URL can only be used directly when that complete protocol has been registered. There is no opendal+* or prefix-based fallback.
opendalfs currently publishes entry points for three services:
opendal+s3
opendal+gcs
opendal+azblob
Other OpenDAL services require an explicit call to register_opendal_service(). This creates and registers a service-specific filesystem class for the current Python process.
Tier 0 services
We should define an explicit set of Tier 0 services as the stable, installation-time protocol surface of opendalfs.
For every Tier 0 service, opendalfs should:
- publish an exact
opendal+<service> entry point;
- provide stable URL and path semantics;
- support discovery without importing opendalfs or calling a registration function first;
- maintain the corresponding adapter, tests, and documentation.
The Tier 0 service set should be the single source of truth for the built-in service adapters, packaged entry points, and default protocol registration.
Services outside Tier 0 can continue to use register_opendal_service(). This keeps additional OpenDAL services available without including every service in the default compatibility guarantee.
Follow-up to the entry-point discussion in #85.
Current behavior
fsspec discovers third-party filesystems from the
fsspec.specsentry-point group. Each entry-point name is registered as an exact protocol and its filesystem class is imported lazily when the protocol is first used.Because protocol lookup is exact, an
opendal+<service>URL can only be used directly when that complete protocol has been registered. There is noopendal+*or prefix-based fallback.opendalfs currently publishes entry points for three services:
opendal+s3opendal+gcsopendal+azblobOther OpenDAL services require an explicit call to
register_opendal_service(). This creates and registers a service-specific filesystem class for the current Python process.Tier 0 services
We should define an explicit set of Tier 0 services as the stable, installation-time protocol surface of opendalfs.
For every Tier 0 service, opendalfs should:
opendal+<service>entry point;The Tier 0 service set should be the single source of truth for the built-in service adapters, packaged entry points, and default protocol registration.
Services outside Tier 0 can continue to use
register_opendal_service(). This keeps additional OpenDAL services available without including every service in the default compatibility guarantee.