Releases: bytedance/sonic
Releases · bytedance/sonic
v1.5.0-rc
v1.4.0
Feature
- [#275] support Go 1.19
- [#280] adapt to
SSE4-only
CPU on archAMD64
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 panicinvalid 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 ifNode
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
v1.3.4
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
v1.3.2
v1.3.1
Feature
- [#237] opt: remove bound and loop unrolling in the quote process. The benchmark showed the encoding performance was accelerated by 10%~20%.
CI
- [#239] test: add more JSON samples and corresponding benchmarks, aiming at performance comparison with https://github.com/go-json-experiment/json
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Feature
- [#233] add configurable
sonic.API
to be compatible withencoding/json
library andARM
arch. - [#225] support streaming IO with
encoder.StreamEncoder
anddecoder.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
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
Full Changelog: v1.2.1...v1.2.2