Skip to content

Releases: bytedance/sonic

v1.5.0-rc

08 Sep 08:54
2138136
Compare
Choose a tag to compare

Feature

[#294] (decoder) support looser type-casting (breaking change)

Bugfix

[#295][#296] (decoder) StreamDecoder unexpectedly stop while skipping incomplete number

Full Changelog: v1.4.0...v1.5.0-rc

v1.4.0

22 Aug 09:24
cf08d54
Compare
Choose a tag to compare

Feature

  • [#275] support Go 1.19
  • [#280] adapt to SSE4-only CPU on arch AMD64 and no longer limit usage on Mac-M1 machine
  • [#287] add option MaxInlineDepth for adjusting compilation inline depth
  • [#218] (encoder) add encoder option NoNullSliceOrMap
  • [#253] (decoder) add option ValidateString to validate if string value is UTF8
  • [#249] (ast) add more strict casting API
  • [#262] (ast) support casting V_STRING to number
  • [#278] (ast) support cast null to zero value (break change)

Bugfix

  • [#243] (encoder) insufficient buffer size check for OP_i32 and panic invalid memory address or nil pointer dereference
  • [#243] (encoder) marshal escape '\b' and '\f' inconsistently with encoding/json
  • [#259] (encoder) handle map without dereferencing pointer when calling call_marshaler_v
  • [#254] (decoder) didn't return io.EOF error when read nothing from io.Reader
  • [#261] (decoder) didn't check ',' before object key due to imperfect FSM
  • [#267] (decoder) StreamDecoder returns error when run out of buffer while skipping value
  • [#268] (decoder) wrongly set options and panic can't set OptionUseInt64 and OptionUseNumber both
  • [#250] (ast) checkRaw() didn't check if Node is nil pointer first

Optimization

  • [#287] reduce default max inline depth (from 5 to 3) for less compilation time and better performance
  • [#237] (encoder) remove bound and loop unrolling in quote
  • [#239] (test) add more benchmarks on different structures

Full Changelog: v1.3.0...v1.4.0

v1.3.5

11 Aug 06:51
b36771b
Compare
Choose a tag to compare

Feature

  • [#275] support Go 1.19

v1.3.4

28 Jul 09:58
8b51e75
Compare
Choose a tag to compare

Feature

[#262] feat: (ast) support casting string to number

Bugfix

[#267] fix: (decoder) StreamDecoder returns error when run out of buffer while skiping value
[#269] fix: (encoder) insufficient buffer size check for OP_i32
[#268] fix: (decoder) panic on UseInt64 option

Full Changelog: v1.3.3...v1.3.4

v1.3.3

08 Jul 08:19
07d7b86
Compare
Choose a tag to compare

Feature

  • [#218] feat:(encoder) add encoder option NoNullSliceOrMap

Bugfix

  • [#259] fix:(encoder) panic on calling MarshalJSON() of a alias map
  • [#261] fix:(decoder) didn't check ',' before a object key due to imperfect FSM

Full Changelog: v1.3.2...v1.3.3

v1.3.2

03 Jul 06:16
55e3d10
Compare
Choose a tag to compare

Feature

  • [#249] feat:(ast) Add more strict casting APIs (StrictXXX())

Bugfix

  • [#243] fix:(encoder) Escape \b/\f like encoding/json
  • [#250] fix:(ast) checkRaw() checks nil-pointer first
  • [#254] fix: (decoder) return io.EOF when read nothing from io.Reader

Full Changelog: v1.3.1...v1.3.2

v1.3.1

09 Jun 04:00
410625c
Compare
Choose a tag to compare

Feature

  • [#237] opt: remove bound and loop unrolling in the quote process. The benchmark showed the encoding performance was accelerated by 10%~20%.

CI

Full Changelog: v1.3.0...v1.3.1

v1.3.0

25 May 07:14
ced2830
Compare
Choose a tag to compare

Feature

  • [#233] add configurable sonic.API to be compatible with encoding/json library and ARM arch.
  • [#225] support streaming IO with encoder.StreamEncoder and decoder.StreamDecoder.
  • [#228] support windows OS.

Bugfix

  • [#230] (encoder) fix the invalid length of output buffer caused by register-scratching bug under encoding error.
  • [#224] (encoder) add defensive string-pointer-checking to avoid crashes on native-C stack.

Full Changelog: v1.2.0...v1.3.0

v1.2.2

23 May 07:29
75b728b
Compare
Choose a tag to compare

What's Changed

  • fix: some typos by @liuq19 in #221
  • fix: add nil pointer check by @AsterDY in #224
  • fix (encoder): spill RL (buffer length) register while calling internal encoders in case of it got scratched by @AsterDY in #230
  • feat: support for Windows by @ii64 in #228

New Contributors

  • @ii64 made their first contribution in #228

Full Changelog: v1.2.1...v1.2.2

v1.2.1

21 Apr 07:44
9aab470
Compare
Choose a tag to compare

What's Changed

[#216 ]doc: update readme
[#215] fix: base64x' native decoder stack-overflow under AVX2 CPU

Full Changelog: v1.2.0...v1.2.1