13 releases (7 breaking)
0.8.0 | Jan 1, 2025 |
---|---|
0.7.0 | Nov 20, 2024 |
0.6.0 | Sep 23, 2024 |
0.4.3 | Mar 20, 2024 |
0.2.1 | Nov 9, 2023 |
#332 in Game dev
330 downloads per month
Used in bevy_serialization_urdf
7.5MB
1K
SLoC
bevy_serialization_extras
A library for component oriented serialization.
Features
- Out of the box serialization Through
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())
- Serialization of groups of enities that compose an asset into their singular asset equivillent, and vice-versa
A visualization util to list serializable/unserializable components(W.I.P) [bevy_serialization_core]
Visualize and edit 3rd party components that do not Reflect
E.G: Edit Rapier's ImpulseJoint
through JointFlag
[bevy_serialization_physics]
Serialize a collection of entities into an Asset
that is composed of them
E.G: serialize the parts of a robot into a Urdf
[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
Why bevy_serialization_extras?
-
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.
Credits
moonshine_save
for the save/load backend of this library
Usage
See sub-crate /examples
files for example usage.
Dependencies
~36–69MB
~1M SLoC