Releases: Data-Oriented-House/Squash
Releases · Data-Oriented-House/Squash
Version 5.0.0
Changes
- Improved precision of negative integers for 6-8 bytes - @chess123mate Thank you 🫶
- Optimized integer push functions by removing modulo rounding beforehand - @chess123mate 🫶
Version 4.1.0
Fixed lazy loading bug with CFrame serializer and reduced memory usage in non-roblox environments.
Version 4.0.0
Changelog
- Changed
uint(1) -> u8(),int(2) -> i16(),number(4) -> f32(), etc. - Changed
intimplementation to finally comply withbuffer.writeibehavior and range. - Simplified by @hardlyardi
Optimizations
Thanks to the help of @hardlyardi
- Added special cases in vector, vector2, vector3, vector4, Vector2, Vector3 serializers to minimize reallocation calls.
- Changed Cursor implementation to reduce table accesses.
Version 3.1.0
Squash 3.1.0
Changelog
- Added
vector2,vector3,vector4, andvectorserializers for the nativevectordatatypevectorwill pick eithervector3orvector4depending on the luau vector-width configuration, making it accessible to Luau users outside of the Roblox sphere
Version 3.0.0
Highlights
- Optimized Record & Array output size by bitpacking booleans AND optional flags in tandem
- Fixed VLQs serialization bugs / edgecases
- Fixed Int serialization bugs / edgecases
- Fixed Record serialization bugs / edgecases
Changelog
- Changed Int3, Int5, Int6, Int7, Int8 to use Zip Encoding instead of 2's Compliment
- Changed VLQs to split encodings into 32bit hi and lo values to preserve data within 52bits
- Changed Records & Arrays to support bitpacking all combinations of booleans and optional values
Helpful Contributors
- @Mark-Marks for providing external testing and revealing bugs and providing technical support for users
- @unityjaeger for attempting bugfixes and providing technical support for users
- @hardlyardi for writing Holy and providing insight about improving VLQ and Int serialization
- @rimuy for updating and maintaining the Typescript port
- Everyone else who has contributed to Squash and the Squash - A Comprehensive SerDes Compression Library thread ❤️
Version 2.5.0
Squash 2.5.0
Highlights
- Removed misleading documentation and fixed minor mistakes
- Optimized Record output size by bitpacking booleans
- CFrame serialization times improved - @TrippTrapp84
- CFrame rotation accuracy improved by using quaternions - @haotian2006
Changelog
- Added
rotationserdes to serialize rotations, which are CFrames without a position component ⚠️ Breaking Changes: No longer backwards compatible with buffers serialized from 2.4.0 or before- Used quaternions to encode CFrame rotations and improve the
CFrameserdes accuracy - Implemented bitpacking for booleans in
recordserdes for reducing output size
- Used quaternions to encode CFrame rotations and improve the
New Contributors
- @TrippTrapp84 made their first contribution in #40
- @haotian2006 made their first contribution in #41
Full Changelog: v2.4.0...v2.5.0
Version 2.4.0
Version 2.3.2
Fixed a few issues with caches
Version 2.3.0
Added optional length parameter to buffer, string, array serdes. Removed char serdes.
Version 2.2.0
- Added generic
tableserializer (don't prefer this over records) - Added
optserializer for optional data - Added
charserializer for serializing individual characters - Removed
angleserializer for being useless - The
mapserializer no longer requires theTfunction to get the type right - Improved documentation on Cursors, VLQs, and the Table types
