Skip to content

Consider restructuring crates to reduce dependency cycles #3781

@gatesn

Description

@gatesn

Our current crate structure is complex to use and makes it hard to discover functionality. We are also in the process of moving extensible types to live inside a VortexSession, which currently has to live in the main vortex crate to avoid dependency cycles.

Here is a proposal for an alternate structure that pulls all core functionality up into a top-level vortex crate (effectively the current vortex-array crate), and pulls down encoding and engine plugins into their own crates. This means that the pre-configured Vortex file format (that we're calling editions) live at the bottom of the dependency graph.

Image

Note that Tokio went through a similar restructuring: tokio-rs/tokio#1318

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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