You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So I've been explicitly avoiding looking at their design thus far, to kind of keep a clean head.
One difference I know on top of my head is that bevy_reflect has a "type registry", whereas facet has an associated const.
Ideally, as const capabilities improve in Rust, it'll be possible to do all sorts of things in const fn contexts based on Facet's data structures. For now there are blockers (ConstTypeId shenanigans, PartialEq::eq in const, rescursive consts etc.) — but those are being discussed by various rust teams.
I think in terms of performance there are different goals, too — but again, I feel like if I took a detailed look at bevy_reflect it would kind of anchor my expectations and it would make it harder to just think from first principles so I'm going to willingly avoid doing that, and I'd be grateful if folks can exercise patience and not list too many differences in this topic right now yet.
Hey @fasterthanlime, Bevy's SME-Reflect here! I know you haven't looked at bevy_reflect in detail (which is totally understandable and something I tend to do as well), but I was curious about facet-reflect's goals as that could help us answer similar questions from people on our end.
Since Bevy is a game engine, one thing we want to support as easily as possible is scripting and types fully defined at runtime (e.g. from a scripting language). We're not fully there yet, but that is one of our goals.
Is this a similar goal for facet-reflect? To allow for fully runtime-defined types that aren't strictly tied to things like TypeIds and such?
Bevy is a game engine written in Rust, and it has a reflection library: https://docs.rs/bevy_reflect/latest/bevy_reflect/
The text was updated successfully, but these errors were encountered: