Open
Description
I've seen the practice of using features to enable implementations of different kinds of resources as a convention in Rust libraries. I mentioned this indirectly in chat but I'm eager to know if it's something that's welcome to merge in the disk and memory implementations to this crate as a feature.
Pros
- Core development can be quickly tested on specific implementations
- Fixes in implementations that can affect the core interface can be sent upstream quickly
- Testing everything with different forms of data can happen in one go.
Cons
- Versioning becomes very specific to the root crate and can make semver messy.
- Downstream clients (any?) could become confused with change in packaging
A compromise of sorts would be converting this into a workspace and having the other implementations be local crates, which gives us the benefits without the cons.
(Originally published at: https://jacky.wtf/2022/7/PCUV)
Metadata
Metadata
Assignees
Labels
No labels