github bytedance/sonic v1.4.0

latest releases: v1.14.2, loader/v0.4.0, v1.14.1...
3 years ago

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

Don't miss a new sonic release

NewReleases is sending notifications on new releases.