-
Notifications
You must be signed in to change notification settings - Fork 489
Description
Now that lance-namespace moved from lancedb/lance-namespace in here, lance-format/lance-namespace#242 no longer applies.
The latest beta still pulls in aws-* crates due to lancedb depending on lance-namespace-impls with default features enabled.
lance-namespace-impls will pull in lance with default features enabled, which in fact will enable the aws feature.
Details
When using lance in one of the subcrates such as lance-namespace-impls this will pull in all the dependencies that are enabled by the default features.
Dropping the default features avoids having aws-* crates as an implicit hard dependency.
Here is a cargo tree output of the current beta. I have v0.38.3-beta.9 checked out locally and tested that disabling the default features on lance will in fact, remove the dependency on aws-lc-rs (and the other aws-* crates)
aws-lc-rs v1.14.1
├── rustls v0.23.34
│ ├── aws-smithy-http-client v1.1.3
│ │ ├── aws-smithy-http-client feature "default"
│ │ │ └── aws-smithy-runtime v1.9.3
│ │ │ ├── aws-smithy-runtime feature "client"
│ │ │ │ ├── aws-config v1.8.8
│ │ │ │ │ ├── aws-config feature "credentials-process"
│ │ │ │ │ │ └── aws-config feature "default"
│ │ │ │ │ │ └── lance-io v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-io)
│ │ │ │ │ │ ├── lance v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance)
│ │ │ │ │ │ │ ├── lance feature "aws"
│ │ │ │ │ │ │ │ └── lance feature "default" << This is causing the inclusion of `aws-*`
│ │ │ │ │ │ │ │ └── lance-namespace-impls v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-namespace-impls)
│ │ │ │ │ │ │ │ ├── lance-namespace-impls feature "default"
│ │ │ │ │ │ │ │ │ └── lancedb v0.22.3-beta.2 (https://github.com/lancedb/lancedb.git?tag=v0.22.3-beta.2#451411b1) (*)
More cargo tree output
aws-lc-rs v1.14.1
├── rustls v0.23.34
│ ├── aws-smithy-http-client v1.1.3
│ │ ├── aws-smithy-http-client feature "default"
│ │ │ └── aws-smithy-runtime v1.9.3
│ │ │ ├── aws-smithy-runtime feature "client"
│ │ │ │ ├── aws-config v1.8.8
│ │ │ │ │ ├── aws-config feature "credentials-process"
│ │ │ │ │ │ └── aws-config feature "default"
│ │ │ │ │ │ └── lance-io v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-io)
│ │ │ │ │ │ ├── lance v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance)
│ │ │ │ │ │ │ └── lancedb v0.22.3-beta.2 (https://github.com/lancedb/lancedb.git?tag=v0.22.3-beta.2#451411b1)
│ │ │ │ │ │ │ ├── lancedb feature "gcs"
│ │ │ │ │ │ │ │ └── instant-index v0.1.0 << Part of our software
│ │ │ │ │ │ │ └── lancedb feature "oss"
│ │ │ │ │ │ │ └── instant-index v0.1.0 << Part of our software
│ │ │ │ │ │ │ ├── lance feature "aws"
│ │ │ │ │ │ │ │ └── lance feature "default" << This is causing the inclusion of `aws-*`
│ │ │ │ │ │ │ │ └── lance-namespace-impls v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-namespace-impls)
│ │ │ │ │ │ │ │ ├── lance-namespace-impls feature "default"
│ │ │ │ │ │ │ │ │ └── lancedb v0.22.3-beta.2 (https://github.com/lancedb/lancedb.git?tag=v0.22.3-beta.2#451411b1) (*)
│ │ │ │ │ │ │ │ ├── lance-namespace-impls feature "dir"
│ │ │ │ │ │ │ │ │ └── lancedb v0.22.3-beta.2 (https://github.com/lancedb/lancedb.git?tag=v0.22.3-beta.2#451411b1) (*)
│ │ │ │ │ │ │ │ └── lance-namespace-impls feature "rest"
│ │ │ │ │ │ │ │ └── lancedb v0.22.3-beta.2 (https://github.com/lancedb/lancedb.git?tag=v0.22.3-beta.2#451411b1) (*)
│ │ │ │ │ │ │ ├── lance feature "azure"
│ │ │ │ │ │ │ │ └── lance feature "default" (*)
│ │ │ │ │ │ │ ├── lance feature "default" (*)
│ │ │ │ │ │ │ ├── lance feature "gcp"
│ │ │ │ │ │ │ │ ├── lancedb feature "gcs" (*)
│ │ │ │ │ │ │ │ └── lance feature "default" (*)
│ │ │ │ │ │ │ └── lance feature "oss"
│ │ │ │ │ │ │ ├── lancedb feature "oss" (*)
│ │ │ │ │ │ │ └── lance feature "default" (*)
│ │ │ │ │ │ ├── lance-file v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-file)
│ │ │ │ │ │ │ └── lance-file feature "default"
│ │ │ │ │ │ │ ├── lance v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance) (*)
│ │ │ │ │ │ │ ├── lance-index v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-index)
│ │ │ │ │ │ │ │ └── lance-index feature "default"
│ │ │ │ │ │ │ │ └── lance v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance) (*)
│ │ │ │ │ │ │ └── lance-table v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-table)
│ │ │ │ │ │ │ └── lance-table feature "default"
│ │ │ │ │ │ │ ├── lance v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance) (*)
│ │ │ │ │ │ │ └── lance-index v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-index) (*)
│ │ │ │ │ │ ├── lance-index v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-index) (*)
│ │ │ │ │ │ └── lance-table v0.38.3-beta.9 (/Users/valkum/Developer/lance/rust/lance-table) (*)
│ │ │ │ │ │ ├── lance-io feature "aws"
│ │ │ │ │ │ │ └── lance feature "aws" (*)
│ │ │ │ │ │ ├── lance-io feature "azure"
│ │ │ │ │ │ │ └── lance feature "azure" (*)
│ │ │ │ │ │ ├── lance-io feature "gcp"
│ │ │ │ │ │ │ └── lance feature "gcp" (*)
│ │ │ │ │ │ ├── lance-io feature "opendal"
│ │ │ │ │ │ │ ├── lance-io feature "aws" (*)
│ │ │ │ │ │ │ ├── lance-io feature "azure" (*)
│ │ │ │ │ │ │ ├── lance-io feature "gcp" (*)
│ │ │ │ │ │ │ └── lance-io feature "oss"
│ │ │ │ │ │ │ └── lance feature "oss" (*)
│ │ │ │ │ │ └── lance-io feature "oss" (*)
I haven't tried to disable default features for lance-namespace-impl in lancedb yet.
I am also not sure if lance-namespace-impl needs features to enable the different backends.