- Updated rbx-dom dependencies
- Changed the way instances are added to the serializer to a depth-first post-order traversal. (#432)
- Within
PRNT
chunks, parent-child links are now generated depth-first so that parents always come after their children in the chunk. (#411)
- Add the ability to specify a
ReflectionDatabase
to use for serializing and deserializing. This takes the form ofDeserializer::reflection_database
andSerializer::reflection_database
. (#375)
- Fixed missing fallback default for
SecurityCapabilities
([#371]).
- Added support for
SecurityCapabilities
values. (#361) - Fixed potential crash when serializing
SharedString
values (#363)
- Added support for
UniqueId
values. (#271) - Added migrations for properties like
ScreenGui.IgnoreGuiInset
andTextLabel.Font
to their new counterparts (ScreenGui.GuiInsets
andTextLabel.FontFace
, respectively). (#283) - Added support for
Terrain.MaterialColors
. (#323)
- Added support for
Font
values. (#248) - Fixed the nondeterministic output of SSTR chunk when multiple shared strings are present. (#254)
- Fixed unserialized properties getting deserialized, like
BasePart.MaterialVariant
. (#230)
- Implemented serialization and deserialization of
Attributes
. (#220)
- Fixed writing models where some instances have
Tags
properties and others do not.
- Added support for
Tags
values. (#199)
- Upgraded to rbx_dom_weak 2.2.
- Upgraded to rbx_dom_weak 2.1.
- Upgraded to rbx_dom_weak 2.0 stable.
- Fixed null Refs not being written for unserialized instances. (#184)
- Changed interface:
- Renamed
from_reader_default
tofrom_reader
. - Added
Deserializer
type. - Renamed
from_writer_default
tofrom_writer
and reordered arguments. - Added
Serializer
type.
- Renamed
- Added
OptionalCoordinateFrame
support. (#176) - Added support for writing CFrame basic rotation IDs. (#171)
- Unknown property types will no longer fail deserialization (#168)
- This makes rbx_binary more resilient to new types being added by Roblox.
PROP
chunks that end after their prop name are now silently ignored. (#168)- This matches Roblox's behavior and fixes our handling of
OptionalCoordinateFrame
, added in the most recent Roblox Studio release.
- This matches Roblox's behavior and fixes our handling of
- Added support for encoding
Int32
values asBrickColor
.- This helps improve compatibility when decoding XML models and reencoding them as binary.
- Added support for widening integer types when serializing.
Int32
will widen toInt64
,Float32
will widen toFloat64
.
This release is a major, breaking change that upgrades rbx_xml's underlying DOM implementation from rbx_dom_weak 1.0 to 2.0. This release also realigned rbx_binary's API to match rbx_xml.
- Breaking: ported crate to rbx_dom_weak 2.0
- Breaking: updated top-level API to match rbx_xml.
- Added support for all remaining types.
0.5.0 is intended to be mostly API-compatible with previous rbx_binary releases because it makes a lot of foundational changes. 0.6.0 will break the rbx_binary API significantly.
- Rewrote crate from ground-up using understanding gained from rbx_xml
- Added support for using reflection information, improving content compatibility
- Improved performance by up to 30% for some files
- Improved instrumentation using the
log
crate - Improved the crate's error types (#48)
- Fixed panics in many cases, instead returning an error (#26)
- Fixed handling unknown
BinaryString
values (#49)
- Fixed bad interaction with rbx_dom_weak 1.6.0 causing instances to go missing.
- Updated to
rbx_dom_weak
1.0
- Updated
rbx_tree
dependency torbx_dom_weak
0.3.0
- Updated
rbx_tree
dependency to 0.2.0
- Initial release
- Supports
String
andBool
types