Skip to content

Moving other crates into this one as a feature #24

Description

@jalcine

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions