Skip to content

Convert gtars to a workspace #148

@nleroy917

Description

@nleroy917

I know we've discussed this a lot already, but I’d like to formally make the case for converting gtars into a workspace. The crate has become too bloated, and it’s making it increasingly difficult to build for multiple targets. Specifically, the Python bindings, R bindings, and CLI are all now transitively dependent on code they don’t even use, and it’s getting frustrating.

Example 1: Python bindings broken by transitive dependency

With the release of v0.3.0, we couldn’t build the Python bindings due to this linker error:

cannot find -lsqlite3.lib

This comes from diesel, which is pulled in by bioccachers, which is pulled in by bbcache– a module inside gtars. Even though bbcache isn’t used at all in the Python bindings, it still gets compiled and brings its dependencies along with it.

If gtars were a workspace, we could isolate core modules like tokenizers, refget, and RegionSet into independent crates and import only what we need. This would eliminate the sqlite3 dependency for the Python bindings entirely.

Example 2: WebAssembly blocked by openssl

I attempted to build WebAssembly (wasm) bindings for gtars, but ran into build failures due to an openssl dependency. This comes from bbcache and RegionSet, even though I only needed refget and the overlap logic.

Again, with a workspace structure, I could just depend on the minimal subset required, avoiding the openssl problem entirely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions