bevyengine / bevyengine/bevy

Add more features to allow the removal of unused dependencies in library crates

Open
#24,495 1 comment 0 reactions 0 assignees View on GitHub
A-Cross-Cutting C-Usability D-Complex S-Needs-Goal
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Many bevy crates don't have features to remove unused dependencies.

Many bevy crates have features that allow using the crate without bevy, but they don't always have features for use in libraries that only need the types and not the actual functionality.

For example, bevy_transform has a `bevy-support` feature that can be disabled to reduce unused dependencies, but no feature that allows using `Transform` as a `Component` without also adding `bevy_app` as a dependency. Moreover, the `bevy_app` dependency is only used for the `TransformPlugin`, which isn't normally needed in libraries.

## Solution

Add more features to bevy crates that allow more fine grained control over the dependencies used.

### Additional Request

These features would also allow for something like a `library` feature for bevy, that can be used in libraries that don't need bevy features like `Plugin`s or `App`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.