| Crates.io | bevy_serialization_extras |
| lib.rs | bevy_serialization_extras |
| version | 0.10.0-beta.0 |
| created_at | 2023-10-26 17:37:04.702458+00 |
| updated_at | 2025-04-08 20:26:37.08236+00 |
| description | A crate for managing serialization with moonshine_save + wrappers. |
| homepage | |
| repository | https://github.com/rydb/bevy_serialization_extras |
| max_upload_size | |
| id | 1014795 |
| size | 7,869,873 |
plugins] for components// Component <-> WrapperComponent
.add_plugins(SerializeComponentFor::<AsyncCollider, ColliderFlag>::default())
// Asset <-> WrapperComponent
.add_plugins(SerializeAssetFor::<MeshMaterial3d<StandardMaterial>, MaterialFlag3d>::default())
// Query -> Component,
.add_plugins(SerializeQueryFor::<Linkage, ImpulseJoint, JointFlag>::default())
Reflect]ImpulseJoint through JointFlag [bevy_serialization_physics]
Asset] that is composed of themUrdf] [bevy_serialization_assemble]//(entity_0, ... entity_n) -> Asset
// [UNIMPLEMENTED] Asset -> (entity_0, ... entity_n)
.add_plugins(SerializeManyAsOneFor::<LinkQuery, Urdf>::default())
https://github.com/user-attachments/assets/fb1a1b09-db3f-4476-9b0d-800b296ccb8a
bevy_serialization_extras is built ontop of bevy_reflect, not serde. No need to double dip to serialize.
bevy_serialization_extras allows regular serialization into .ron via [moonshine_save] + allows converting serializables into more stable file formats via bevy_serialization_assemble.
serde serialization:
world <--> scene.json
bevy_serialziation_extras:
(object) <--> (partA, partB) <--> .file
(person) (body + arm_0...arm_n + leg_0..leg_n) <--> .file
world <--> scene.ron
This is good for creating editors in bevy.
[moonshine_save] for the save/load backend of this library
See sub-crate /examples files for example usage.