Releases: sarvalabs/go-polo
Limpwood's Lethal Lichen (v0.3.0)
v0.3.0
is a feature release that introduces raw encoding capabilities and contains several breaking changes to the custom pack-encoding API, big integer encoding and introduces new wire type variants.
- Added a new wire type
WireRaw
that replacesWireBigInt
numerically and introduced a newRaw
construct that allows decoding the wire element directly into its raw wire bytes. - Replaced the
Packer
andUnpacker
types withPolorizer
andDepolorizer
that can also support custom serialization logic by implementing thePolorizable
andDepolorizable
interfaces. Polorize
andDepolorize
function have been refactored to use the custom serialization logic if the type implements thePolorizable
andDepolorizable
interfaces.- Big Integers are now just treated as larger number instead of having a dedicated wire type, allowing the
WirePosInt
andWireNegInt
wire types to have arbitrary sized information
Changelog:
- v0.2.3...v0.3.0
- Refactor Encoding API by @sarvalabs-manish in #16
- Implement Raw Decoding & Unified Integer Encoding by @sarvalabs-manish in #17
Spriggan Sap (v0.2.3)
v0.2.3
is release containing a bug fix for the inconsistent document encoding when encoding string-keyed maps and refactors the internal document encoding flow to be more consistent and modular.
DocumentEncode()
now returns aDocument
instead of fully serializing to its binary wire form.Polorize()
now checks if the encoding value is aDocument
and encodes the data with theWireDoc
tag.Document.Bytes()
now correctly encodes theDocument
and internally calls thePolorize()
function on itself
Changelog:
- v0.2.2...v0.2.3
- Refactor DocumentEncode & Document Bytes Conversion by @sarvalabs-manish in #12
Pickled Pumpkins (v0.2.2)
v0.2.2
is a feature release that introduces custom pack encoding using the Packer
and Unpacker
types.
- Custom Order Pack Encoding with
Packer
- Wire Element Unpacking/Decoding with
Unpacker
BUGFIX
readbuffer
mutating underlying data while generating prepended bytes
Changelog:
- v0.2.1...v0.2.2
- Implement Custom Pack Encoding by @sarvalabs-manish in #10
Faun Fur (v0.2.1)
The v0.2.1
release is a bug fix for incorrect wiretypes used when collapsing a Document
into its bytes with the Bytes()
method, which was using WirePack
instead of WireDoc
tagging. Refactors some error generation and example locations.
Changelog:
- v0.2.0...v0.2.1
- Fix Document Collapse by @sarvalabs-manish in #9
Goldhorn's Glowing Goats (v0.2.0)
v0.2.0
is a feature release thats adds support for Document Encoding, a special form of encoding the message wire such that it retains the field keys of structured types of string-keyed maps
- Polorize Go Maps and Structs into Document Encoded Wire
- Depolorize Document Encoded POLO Wire into
Document
and structs. - Custom Field Tagging for Document Encoding
Changelog:
- v0.1.1...v0.2.0
- Implement Document Encoding Capabilities by @sarvalabs-manish in #3
Screecher Scales (v0.1.1)
v0.1.1
is a bug fix release that resolves unexpected panics that occur when polorizing abstract types or empty nils in Go. The Polorize
function will no longer panics when called with such objects (eg. any
).
Changelog:
- v0.1.0...v0.1.1
- Fix Abstract Nil Panics by @sarvalabs-manish in #5
Abecean Alkahest (v0.1.0)
v0.1.0
is the initial core Implementation of the POLO serialization specification.
The go-polo
library currently has the following features:
- Polorize Go Objects into POLO Wire.
- Depolorize POLO Wire into Go Objects.
- Atomic Encoding of Non-Struct Types.
- Struct Field Skipping
- Alias Types Encoding/Decoding
- Big Integer Support & Byte Arrays as Words
go-polo
will use fictional alliterated alchemical ingredients for release names