Skip to content

Releases: Data-Oriented-House/Squash

Version 5.0.0

04 Jan 04:20

Choose a tag to compare

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

24 Oct 04:15
2029153

Choose a tag to compare

Fixed lazy loading bug with CFrame serializer and reduced memory usage in non-roblox environments.

Version 4.0.0

23 Oct 16:40
0a6d95d

Choose a tag to compare

Changelog

  • Changed uint(1) -> u8(), int(2) -> i16(), number(4) -> f32(), etc.
  • Changed int implementation to finally comply with buffer.writei behavior 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

13 Oct 05:26
8511b25

Choose a tag to compare

Squash 3.1.0

Changelog

  • Added vector2, vector3, vector4, and vector serializers for the native vector datatype
    • vector will pick either vector3 or vector4 depending on the luau vector-width configuration, making it accessible to Luau users outside of the Roblox sphere

Version 3.0.0

21 Jun 19:37
8511b25

Choose a tag to compare

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

Version 2.5.0

01 Feb 17:20

Choose a tag to compare

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 rotation serdes 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 CFrame serdes accuracy
    • Implemented bitpacking for booleans in record serdes for reducing output size

New Contributors

Full Changelog: v2.4.0...v2.5.0

image

Version 2.4.0

12 Aug 02:06

Choose a tag to compare

  • Implements #39, courtesy of @Ocipa
  • Added literal serializer, used to serialize literal values to u1s and back. Useful for enums
  • Improved documentation

Version 2.3.2

18 Jul 07:39

Choose a tag to compare

Fixed a few issues with caches

Version 2.3.0

15 Jul 12:47

Choose a tag to compare

Added optional length parameter to buffer, string, array serdes. Removed char serdes.

Version 2.2.0

12 Jul 09:32

Choose a tag to compare

  • Added generic table serializer (don't prefer this over records)
  • Added opt serializer for optional data
  • Added char serializer for serializing individual characters
  • Removed angle serializer for being useless
  • The map serializer no longer requires the T function to get the type right
  • Improved documentation on Cursors, VLQs, and the Table types