-
-
Notifications
You must be signed in to change notification settings - Fork 752
iOS compilation failure due to zstd #2628
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I think zstd could be optional in |
sstable's codec is written in such a way that compression is already optional (enabled/disabled based on if it's helping or not with size). It should be rather easy to disable zstd entirely from sstables. Obviously sstables written with zstd enabled would not always be readable by a software built without zstd, but a software with zstd support would be able to read both and wouldn't notice a thing. https://github.com/quickwit-oss/tantivy/blob/main/sstable/src/delta.rs#L60 is the 1st place you'll see zstd, if you make |
Thanks for the insight @trinity-1686a, starting to whip up a PR but want to clarify:
Does this interfere with the guarantee expressed in the changelog here? As part of my PR should I remove the compatibility guarantee and add more details about the change? |
That should be okay, if you keep the the serialized format compatible. |
i guess this is an odd position. Currently the support for zstd is disabled by default in tantivy, but mandatory in sstable on which tantivy depends. Piggybacking on tantivy feature flag would break things for people not enabling zstd (their old index wouldn't be entirely readable without enabling that feature), but having multiple feature flags is going to confuse people, and rightly so. |
Thanks for the guidance @PSeitz / @trinity-1686a. Looking forward to your feedback ^ |
I'm working on lockbook, a cross platform, secure note taking app. We recently found our build broken while updating our rust version and traced this behavior to zstd. This failure is described here: gyscos/zstd-rs#337
I do see, however that zstd is an optional feature here
tantivy/Cargo.toml
Line 31 in 5379c99
but is used normally here
tantivy/sstable/Cargo.toml
Line 19 in 5379c99
Is it the intention for zstd to be truly optional? If so, may I send a PR to make
sstable
reflect this? This would allow us to remove zstd from our dependency tree and proceed with our upgrade.Or is it the case that this feature is truly not optional and does need to be solved with zstd itself?
Relevant
cargo tree
output copied from the zstd issue:The text was updated successfully, but these errors were encountered: