Skip to content
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

Namespace feature flags #178

Closed
ecton opened this issue Feb 6, 2022 · 1 comment
Closed

Namespace feature flags #178

ecton opened this issue Feb 6, 2022 · 1 comment
Labels
blocked This issue can't be resolved due to a dependency enhancement New feature or request
Milestone

Comments

@ecton
Copy link
Member

ecton commented Feb 6, 2022

While working on getting doc_cfg working, I ran into issues with several ways that our documentation was laid out. However, the biggest issue is that the complex nature of our feature flags is just not workable with doc_cfg as-is. I'm still going to be pushing the changes to enable it anyways, as having note of what items are behind a feature flag is useful enough even if users temporarily need to refer to another location for a list of the feature flags.

With the recent stabilization of namespaced and weak dependency features, we will be able to refactor the feature flags such that "encryption" works at the bonsaidb level, without needing specific versions like we currently do (server-encryption, local-encryption). This also means that the resuls of doc_auto_cfg will line up perfectly.

The only thing this issue needs is time for the stabilized feature to be released. In the meantime I wanted to make a note of it, as users may be a little confused by the feature flag names not lining up perfectly depending on how they're including the crates.

@ecton ecton added enhancement New feature or request blocked This issue can't be resolved due to a dependency labels Feb 6, 2022
ecton added a commit that referenced this issue Feb 6, 2022
This isn't perfect, but it's better than not having feature flags
showing up at all. #178 explains the vision for where this will end-up
after namespaced feature flags are released, and #174 can introduce a
table of feature flags for each crate and link to #178.
ecton added a commit that referenced this issue Feb 10, 2022
Closes #185

This is a first pass at compression support. I believe that ultimately
we'll want to support both zstd and lz4, but right now feature flags are
really annoying to implement. When we can implement namespaced features
(#178), we should revisit adding multiple compression backends and
options. lz4-flex has a faster unsafe option that can be enabled
optionally, but I've kept disabled in the spirit of BonsaiDb's "safe"
defaults.

From my research, zstd will be preferred when storage is at a premium,
but lz4 *should* be faster in general. I want to write a good benchmark
suite, because I believe the relative performance will potentially be
hardware dependent, and users should be able to gauge what works best
for them.
ecton added a commit that referenced this issue Feb 12, 2022
Closes #185

This is a first pass at compression support. I believe that ultimately
we'll want to support both zstd and lz4, but right now feature flags are
really annoying to implement. When we can implement namespaced features
(#178), we should revisit adding multiple compression backends and
options. lz4-flex has a faster unsafe option that can be enabled
optionally, but I've kept disabled in the spirit of BonsaiDb's "safe"
defaults.

From my research, zstd will be preferred when storage is at a premium,
but lz4 *should* be faster in general. I want to write a good benchmark
suite, because I believe the relative performance will potentially be
hardware dependent, and users should be able to gauge what works best
for them.
@ecton ecton added this to the vNext milestone Apr 4, 2022
@ecton
Copy link
Member Author

ecton commented Apr 4, 2022

This is in the prerelease of 1.60.

@ecton ecton closed this as completed in 59450ea Apr 9, 2022
ecton added a commit that referenced this issue Apr 9, 2022
Closes #178

I'm not quite sure the best way to present the feature flags, as there
are still crate-specific messages. Most are the same though... Perhaps a
table.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked This issue can't be resolved due to a dependency enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

1 participant