bevyengine / bevyengine/bevy

impl Sync for SubApp to package as Components safely

Open
#21,583 2 comments 0 reactions 0 assignees View on GitHub
A-ECS C-Feature S-Nominated-To-Close X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

Currently, SubApp functionality is constrained by its limited integration with Bevy's ECS systems. The inability to pack SubApps as Components restricts their flexibility and prevents them from being operated within arbitrary systems.

## What solution would you like?

If posible, treat SubApp instances as first-class App, allowing them to be:

Packaged as Components

Operated within any system context

Managed through standard ECS operations

This approach would enable the deprecation of the dedicated SubApps resource and ExtractFn infrastructure, streamlining the architecture.

## What alternative(s) have you considered?

One potential alternative involves implementing Sync for SubApp to package as Components safely.

## Additional context

It's worth noting that current SubApp usage (except RenderApp) remains relatively limited across the Bevy plugin ecosystem, suggesting this refactor could simplify the codebase without significant ecosystem disruption.

Contributor guide

Open the contributing guide

Research direction

Start by tracing SubApp usage and the existing dedicated SubApps resource and ExtractFn infrastructure. Determine the safety and ECS integration requirements for treating SubApp instances as Components, then verify whether the proposed refactor can support current usage, including RenderApp, without ecosystem disruption.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.