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.

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