This is a meta issue to take a fresh look at the library’s dependency tree. In particular:
- rng support: we have a
fast-rng feature that adds rand as a dependency because getrandom is slow on Windows. Is that still necessary?
- js: we pull in
wasm-bindgen and getrandom unconditionally when building for the web. Could we use our crate features more cleverly to only pull in features we need?
- macros: we have a
macro-diagnostics feature that enables a proc-macro for better error reporting of compile-time UUID literals. Is this actually used? Can we emit more meaningful errors without needing a proc-macro on more recent compilers?
We can consider a major 2.x version of uuid that is semver-compatible with 1.x (no actual API changes and re-export 2.x in 1.x), but that removes or rejigs our crate features as necessary to keep our dependency tree sane.
This is a meta issue to take a fresh look at the library’s dependency tree. In particular:
fast-rngfeature that addsrandas a dependency becausegetrandomis slow on Windows. Is that still necessary?wasm-bindgenandgetrandomunconditionally when building for the web. Could we use our crate features more cleverly to only pull in features we need?macro-diagnosticsfeature that enables a proc-macro for better error reporting of compile-time UUID literals. Is this actually used? Can we emit more meaningful errors without needing a proc-macro on more recent compilers?We can consider a major 2.x version of
uuidthat is semver-compatible with 1.x (no actual API changes and re-export 2.x in 1.x), but that removes or rejigs our crate features as necessary to keep our dependency tree sane.