GabeRundlett / gvox-rs

MIT License
15 stars 1 forks source link

Remove the bindgen/int-enum dependencies for crate consumers in gvox 2.0 #5

Open DouglasDwyer opened 9 months ago

DouglasDwyer commented 9 months ago

I just realized that gvox_rs adds 46 transitive dependencies to my project when I use it! That's a lot of extra stuff to build and compile (see the crate graph below). Most of the cruft comes from bindgen and int-enum. For gvox 2.0, maybe we could:

Let me know what you think. I can help with these changes if/when we get to gvox-rs 2.0!

gvox-rs v1.2.9
├── bitflags v1.3.2
├── fxhash v0.2.1
│   └── byteorder v1.5.0
├── gvox-sys v1.2.9
│   [build-dependencies]
│   ├── bindgen v0.63.0
│   │   ├── bitflags v1.3.2
│   │   ├── cexpr v0.6.0
│   │   │   └── nom v7.1.3
│   │   │       ├── memchr v2.7.1
│   │   │       └── minimal-lexical v0.2.1
│   │   ├── clang-sys v1.7.0
│   │   │   ├── glob v0.3.1
│   │   │   ├── libc v0.2.153
│   │   │   └── libloading v0.8.2
│   │   │       └── windows-targets v0.52.4
│   │   │           └── windows_x86_64_msvc v0.52.4
│   │   │   [build-dependencies]
│   │   │   └── glob v0.3.1
│   │   ├── lazy_static v1.4.0
│   │   ├── lazycell v1.3.0
│   │   ├── log v0.4.21
│   │   ├── peeking_take_while v0.1.2
│   │   ├── proc-macro2 v1.0.78
│   │   │   └── unicode-ident v1.0.12
│   │   ├── quote v1.0.35
│   │   │   └── proc-macro2 v1.0.78 (*)
│   │   ├── regex v1.10.3
│   │   │   ├── aho-corasick v1.1.2
│   │   │   │   └── memchr v2.7.1
│   │   │   ├── memchr v2.7.1
│   │   │   ├── regex-automata v0.4.6
│   │   │   │   ├── aho-corasick v1.1.2 (*)
│   │   │   │   ├── memchr v2.7.1
│   │   │   │   └── regex-syntax v0.8.2
│   │   │   └── regex-syntax v0.8.2
│   │   ├── rustc-hash v1.1.0
│   │   ├── shlex v1.3.0
│   │   ├── syn v1.0.109
│   │   │   ├── proc-macro2 v1.0.78 (*)
│   │   │   ├── quote v1.0.35 (*)
│   │   │   └── unicode-ident v1.0.12
│   │   └── which v4.4.2
│   │       ├── either v1.10.0
│   │       ├── home v0.5.9
│   │       │   └── windows-sys v0.52.0
│   │       │       └── windows-targets v0.52.4 (*)
│   │       ├── once_cell v1.19.0
│   │       └── rustix v0.38.31
│   │           ├── bitflags v2.4.2
│   │           ├── errno v0.3.8
│   │           │   └── windows-sys v0.52.0 (*)
│   │           └── windows-sys v0.52.0 (*)
│   └── cmake v0.1.50
│       └── cc v1.0.89
│           └── jobserver v0.1.28
└── int-enum v0.5.0
    └── int-enum-impl v0.5.0 (proc-macro)
        ├── proc-macro-crate v1.3.1
        │   ├── once_cell v1.19.0
        │   └── toml_edit v0.19.15
        │       ├── indexmap v2.2.5
        │       │   ├── equivalent v1.0.1
        │       │   ├── hashbrown v0.14.3
        │       │   │   ├── ahash v0.8.11
        │       │   │   │   ├── cfg-if v1.0.0
        │       │   │   │   ├── once_cell v1.19.0
        │       │   │   │   └── zerocopy v0.7.32
        │       │   │   │   [build-dependencies]
        │       │   │   │   └── version_check v0.9.4
        │       │   │   └── allocator-api2 v0.2.16
        │       │   └── serde v1.0.197
        │       │       └── serde_derive v1.0.197 (proc-macro)
        │       │           ├── proc-macro2 v1.0.78 (*)
        │       │           ├── quote v1.0.35 (*)
        │       │           └── syn v2.0.52
        │       │               ├── proc-macro2 v1.0.78 (*)
        │       │               ├── quote v1.0.35 (*)
        │       │               └── unicode-ident v1.0.12
        │       ├── serde v1.0.197 (*)
        │       ├── serde_spanned v0.6.5
        │       │   └── serde v1.0.197 (*)
        │       ├── toml_datetime v0.6.5
        │       │   └── serde v1.0.197 (*)
        │       └── winnow v0.5.40
        ├── proc-macro2 v1.0.78 (*)
        ├── quote v1.0.35 (*)
        └── syn v1.0.109 (*)
GabeRundlett commented 8 months ago

I agree, it would be amazing if we could remove as many deps as possible!