Recent Releases of https://github.com/bytedance/sonic
https://github.com/bytedance/sonic - v1.14.0
What's Changed
- fix: trim the trailing whitespace for raw json value by @liuq19 in https://github.com/bytedance/sonic/pull/806
- feat: support go1.25 by @AsterDY in https://github.com/bytedance/sonic/pull/808
- fix: check trailing space for 'native.SkipOneFast' by @AsterDY in https://github.com/bytedance/sonic/pull/812
Full Changelog: https://github.com/bytedance/sonic/compare/v1.13.3...v1.14.0
- Go
Published by AsterDY 11 months ago
https://github.com/bytedance/sonic - v1.14.0-rc1
What's Changed
- fix: trim the trailing whitespace for raw json value by @liuq19 in https://github.com/bytedance/sonic/pull/806
- feat: support go1.25 by @AsterDY in https://github.com/bytedance/sonic/pull/808
Full Changelog: https://github.com/bytedance/sonic/compare/v1.13.3...v1.14.0-rc1
- Go
Published by AsterDY 12 months ago
https://github.com/bytedance/sonic - v1.13.3
What's Changed
- chore: remove
NoQuoteTextMarshalerfromConfigFastestand export … by @AsterDY in https://github.com/bytedance/sonic/pull/781 - fix: code and comment typos by @musvaage in https://github.com/bytedance/sonic/pull/783
- fix(git): add lacking fuzz/go-fuzz-corpus submodule by @zchee in https://github.com/bytedance/sonic/pull/784
- opt:(encoder) use std
strconv.AppendIntfor better performance on arm by @AsterDY in https://github.com/bytedance/sonic/pull/789 - fix: not panic when marshal map key that is bool by @liuq19 in https://github.com/bytedance/sonic/pull/795
- fix: typo in ast/node.go doc comment by @eomhs in https://github.com/bytedance/sonic/pull/793
- feat:(ast) add
Node.StrictBoolby @AsterDY in https://github.com/bytedance/sonic/pull/801 - fix: pass
io.Reader's error toStreamDecoderby @AsterDY in https://github.com/bytedance/sonic/pull/802 - fix(compat): should return error when unmarshaling json with trailing chars by @liuq19 in https://github.com/bytedance/sonic/pull/803
New Contributors
- @musvaage made their first contribution in https://github.com/bytedance/sonic/pull/783
- @zchee made their first contribution in https://github.com/bytedance/sonic/pull/784
- @eomhs made their first contribution in https://github.com/bytedance/sonic/pull/793
Full Changelog: https://github.com/bytedance/sonic/compare/v1.13.2...v1.13.3
- Go
Published by AsterDY about 1 year ago
https://github.com/bytedance/sonic - v1.13.2
What's Changed
- fix(amd64) bugs when parsing into
nil-ifaceby @liuq19 in https://github.com/bytedance/sonic/pull/776 - fix(aarch64): bugs when parsing into
[]byteby @liuq19 in https://github.com/bytedance/sonic/pull/776 - fix(aarch64): unmarshal into
[]json.Numberby @liuq19 in https://github.com/bytedance/sonic/pull/779
Full Changelog: https://github.com/bytedance/sonic/compare/v1.13.1...v1.13.2
- Go
Published by AsterDY about 1 year ago
https://github.com/bytedance/sonic - v1.13.1
What's Changed
- fix(aarch64): avoid using the boundary pointer of an array by @liuq19 in https://github.com/bytedance/sonic/pull/763
- fix: Write version warning to stderr by @roysc in https://github.com/bytedance/sonic/pull/761
- feat: support golang 1.24 by @liuq19 in https://github.com/bytedance/sonic/pull/741
- fix(compat): duplicate description by @y1jiong in https://github.com/bytedance/sonic/pull/767
- chore: add notice for go1.24.0 on README by @AsterDY in https://github.com/bytedance/sonic/pull/766
- fix: loader version by @liuq19 in https://github.com/bytedance/sonic/pull/770
New Contributors
- @roysc made their first contribution in https://github.com/bytedance/sonic/pull/761
- @y1jiong made their first contribution in https://github.com/bytedance/sonic/pull/767
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.10...v1.13.1
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.10
Bugfix
- fix(aarch64): support parse map that key is float by @liuq19 in https://github.com/bytedance/sonic/pull/748
- fix(aarch64): bug when unmarshal into prefilled interface slice by @liuq19 in https://github.com/bytedance/sonic/pull/751
- fix: bug when marshal nil interface{} that contains not-indirect value by @liuq19 in https://github.com/bytedance/sonic/pull/756
- fix(loader): invalid binary length in stackmap by @liuq19 in https://github.com/bytedance/sonic/pull/754
- fix(aarch64): bug when unmarshal into non-nil interface by @liuq19 in https://github.com/bytedance/sonic/pull/759
- fix bug when serde with unsupported type by @liuq19 in https://github.com/bytedance/sonic/pull/757
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.9...v1.12.10
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.9
What's Changed
BugFix( for aarch64)
- fix crash cause by
sigprof, not useX28register in arm64 of native C [PR: #746, Issue: #743] - fix bug when parsing invalid json that contains unescaped control chars [PR: #745, Issue: #739]
- fix bug when parsing large json [PR: #745, Issue: #744]
Chore
- chore: fix ci by @liuq19 in https://github.com/bytedance/sonic/pull/740
- Update codeql-analysis.yml by @willem-bd in https://github.com/bytedance/sonic/pull/736
- chore: add issue and pr template by @liuq19 in https://github.com/bytedance/sonic/pull/742
New Contributors
- @willem-bd made their first contribution in https://github.com/bytedance/sonic/pull/736
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.8...v1.12.9
- Go
Published by liuq19 over 1 year ago
https://github.com/bytedance/sonic - v1.12.8
What's Changed
Feature
- feat:(decoder) add option CaseSensitive by @AsterDY in https://github.com/bytedance/sonic/pull/709
Fix
- fix:(loader) avoid race on
lastmoduledatapwith go plugin (only effects on byted-tango) by @AsterDY in https://github.com/bytedance/sonic/pull/707 - fix: update base64x version to avoid illegal instruction in sse by @liuq19 in https://github.com/bytedance/sonic/pull/734
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.7...v1.12.8
- Go
Published by liuq19 over 1 year ago
https://github.com/bytedance/sonic - v1.12.7
Optimization
- [#727] refactor(loader): copy & trim iasm for smaller binary size by @xiaost
- [#726] introduce json-path lib "cloudwego/gjson" by @AsterDY
New Contributors
- @spacewander made their first contribution in https://github.com/bytedance/sonic/pull/713
- @xiaost made their first contribution in https://github.com/bytedance/sonic/pull/727
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.6...v1.12.7
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.6
Bugfix
- fix(jit): out of index when dump mismatched error by @liuq19 in https://github.com/bytedance/sonic/pull/717
- fix: readme typos by @uncledu in https://github.com/bytedance/sonic/pull/720
- fix(aarch64): skip number for object value by @liuq19 in https://github.com/bytedance/sonic/pull/719
New Contributors
- @uncledu made their first contribution in https://github.com/bytedance/sonic/pull/720
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.5...v1.12.6
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.5
What's Changed
- opt: support NoCopyRawMessage by @liuq19 in https://github.com/bytedance/sonic/pull/708
- fix(aarch64): invalid skip number by @liuq19 in https://github.com/bytedance/sonic/pull/712
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.4...v1.12.5
- Go
Published by liuq19 over 1 year ago
https://github.com/bytedance/sonic - v1.12.4
What's Changed
- build: compatible for unsupportted go images by @AsterDY in https://github.com/bytedance/sonic/pull/701
- fix:(encoder) incorrectly pass pv due to wrongly use
BTCinstead ofBTSby @AsterDY in https://github.com/bytedance/sonic/pull/706
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.3...v1.12.4
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.3
What's Changed
- opt: add decoder Option
NoValidateJSONfor skipping JSON faster by @AsterDY in https://github.com/bytedance/sonic/pull/696
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.2...v1.12.3
- Go
Published by AsterDY over 1 year ago
https://github.com/bytedance/sonic - v1.12.2
What's Changed
BugFix
[#695] panic when using .Error() in mismatch type error
Chore
[#687] build: add CI on performance [#688][#691 chore: add Go 1.23 to workflows and skip checking linkname
New Contributors
- @HeRaNO made their first contribution in https://github.com/bytedance/sonic/pull/688
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.1...v1.12.2
- Go
Published by liuq19 almost 2 years ago
https://github.com/bytedance/sonic - v1.12.1
BugFix
- [#682] consider
json.Marshaler/Unmarshalerwhen handlingjson:",string"tag asencoding/json - [#681] [#683] fix: remove print debug and unused codes
- [#685] feat:(ast) nill Node can marshal to
null
Full Changelog: https://github.com/bytedance/sonic/compare/v1.12.0...v1.12.1
- Go
Published by liuq19 almost 2 years ago
https://github.com/bytedance/sonic - v1.12.0
Feature
- [#645] support aarch64
- [#662] support go1.23rc2 and drop support below go1.17 (fallback)
- [#661]
ast.Nodesupport concurrently-read and optimizeNode.Load/LoadAllby default - [#661]
ast.Nodewill build a hash index for object which has more than 8 keys, to boostNode.Get() - [#668] export
MarshalIndentAPI in root - [#669] support marshal
Inf/NaNwith option - [#673] add
APIKindto indicate if using fallback implementation
Optimization
- [#651] enhance data race detection and panic message on encoder
- [#664] add a limit option on reusing buffer size
New Contributors
- @lvan100 made their first contribution in https://github.com/bytedance/sonic/pull/673
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.9...v1.12.0
- Go
Published by AsterDY almost 2 years ago
https://github.com/bytedance/sonic - v1.12.0-rc
Notice
- [#645] Will not support Go1.16 from v1.12.0
Feature
- [#645] Support ARM64 arch for
decoderandencoder - [#669] support marshal invalid float (
Inf/NaN) asnull - [#668] export
MarshalIndentapi in root
Optimization
- [#667]: remove some link-names to support compilation on
Go1.23rc1(fallback to std) - [#651] enhance data race detection
- [#664] add limit on reusing buffer size to avoid OOM
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.9...v1.12.0-rc
- Go
Published by AsterDY almost 2 years ago
https://github.com/bytedance/sonic - v1.11.9
What's Changed
- chore: remove noavx2 mode by @liuq19 in https://github.com/bytedance/sonic/pull/647
- fix: invalid pcsp in x86_64 by @liuq19 in https://github.com/bytedance/sonic/pull/644
- fix(visitor): unconsumed rbrace in (*traverser).decodeObject() by @zhongxinghong in https://github.com/bytedance/sonic/pull/654
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.8...v1.11.9
- Go
Published by liuq19 almost 2 years ago
https://github.com/bytedance/sonic - v1.11.8
Feature
- [#630] feat:(ast)
Visitorsupport skip object and array ## Bugfix - [#632] fix: better compile error info in 32-bit arch
- [#642] fix: check empty when validating utf8
- [#636] fix: add mssing max pc-sp of natives
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.7...v1.11.8
- Go
Published by AsterDY about 2 years ago
https://github.com/bytedance/sonic - v1.11.7
What's Changed
BugFix
- fix: wrongly use
reflect.growslice()by @AsterDY in https://github.com/bytedance/sonic/pull/629 - fix: possible oom when encode parallel in go1.16 by @liuq19 in https://github.com/bytedance/sonic/pull/635
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.6...v1.11.7
- Go
Published by liuq19 about 2 years ago
https://github.com/bytedance/sonic - v1.11.6
What's Changed
- feat: update base64x by @AsterDY in https://github.com/bytedance/sonic/pull/621
- chore: update loader to v0.1.1 by @AsterDY in https://github.com/bytedance/sonic/pull/623
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.4...v1.11.6
- Go
Published by AsterDY about 2 years ago
https://github.com/bytedance/sonic - v1.11.5-alpha
for test, DONOT USE IT
- Go
Published by AsterDY about 2 years ago
https://github.com/bytedance/sonic - v1.11.4
What's Changed
- [#607] feat:(ast) support arm64 by @AsterDY in https://github.com/bytedance/sonic/pull/607
- [#618] chore: immigrate some dependencies to cloudwego by @AsterDY in https://github.com/bytedance/sonic/pull/618
- [#619] build:(native) full inline native C funcs by @AsterDY in https://github.com/bytedance/sonic/pull/619
New Contributors
- @pengqiseven made their first contribution in https://github.com/bytedance/sonic/pull/606
- @AlexanderMahone0 made their first contribution in https://github.com/bytedance/sonic/pull/617
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.2...v1.11.4
- Go
Published by AsterDY about 2 years ago
https://github.com/bytedance/sonic - v1.11.3
Feature
- [#607]
astpackage support arm64
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.2...v1.11.3
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.11.2
Bugfix
- [#603] fix:(ast) SortKeys(true) panic when not loaded-all
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.1...v1.11.2
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.11.1
Feature
- #594 add new node method "IndexOrGetWithIdx"
Bugfix
New Contributors
- @Bisstocuz made their first contribution in https://github.com/bytedance/sonic/pull/594
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.0...v1.11.1
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.11.0
Feature
- [#590] support go1.22
- #558 allow the disabling of the newline in the encoder
- #577 always copy once after top
Get
Bugfix
- #540 checked if a interface is empty by its value field instead of type field
- #544 didn't pass non-exist value when call
Node.Interface() - #547 didn't fully reuse buffer memory
- #569
Seton non-object node unexpectedly - #571 implement soft delete for
Unset().- Break change :
Unset()'s behavior will be compatible with versions <= 1.9.x, while being incompatible with versions on 1.10.x
- Break change :
Optimization
- #550 refactor streaming decoder to fully use buffer
- [#545] eliminate race test errors
- #552 use lockfree to register new modules
New Contributors
- @felix021 made their first contribution in https://github.com/bytedance/sonic/pull/552
- @testwill made their first contribution in https://github.com/bytedance/sonic/pull/557
- @elee1766 made their first contribution in https://github.com/bytedance/sonic/pull/558
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.2...v1.11.0
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.11.0-rc.2
Feature
- [#577]
Get()will always COPY returned JSON from input JSON bytes, in order to reduce the possibility of OOM when cachingast.Node.- NOTICE: Meanwhile
Get()won't copy entity input JSON bytes like before, for CPU performance. The panic may be more frequent for services that exist data-race on input JSON bytes.
- NOTICE: Meanwhile
Full Changelog: https://github.com/bytedance/sonic/compare/v1.11.0-rc...v1.11.0-rc.2
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.11.0-rc
Break Change
#571 implement soft delete for Unset()/UnsetByIndex(), which means the node Len() and Index() will change after Unset(). This change is in order to be in keeping with versions <= v1.9.2
Feature
- #558 allow the disabling of the newline in the encoder
- [#567] perfect build tag for mmap_unix.go
Bugfix
- [#569]
Seton non-object node unexpectedly change node type
New Contributors
- @elee1766 made their first contribution in https://github.com/bytedance/sonic/pull/558
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.3-rc...v1.11.0-rc
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.10.3-rc
What's Changed
- fix: checked if a interface is empty by its value field instead of type field by @AsterDY in https://github.com/bytedance/sonic/pull/540
- fix: didn't pass non-exist value when call
Node.Interface()by @AsterDY in https://github.com/bytedance/sonic/pull/544 - fix: didn't fully reuse buffer memory by @AsterDY in https://github.com/bytedance/sonic/pull/547
- opt: refactor streaming decoder to fully use buffer by @AsterDY in https://github.com/bytedance/sonic/pull/550
- opt: eliminate race test errors by @AsterDY in https://github.com/bytedance/sonic/pull/545
- opt: use lockfree to register new modules by @felix021 in https://github.com/bytedance/sonic/pull/552
- chore: use out.String() instead of string(out.Bytes()) by @testwill in https://github.com/bytedance/sonic/pull/557
New Contributors
- @felix021 made their first contribution in https://github.com/bytedance/sonic/pull/552
- @testwill made their first contribution in https://github.com/bytedance/sonic/pull/557
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.2...v1.10.3-rc
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.10.2-unsafe_back
Only used for users who doesn't care about break change on Node.UnsafeArray() and Node.UnsafeMap()
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.10.2
Bugfix
- [#521] use int64 for MaxInt48 to compile in x86 arch
- [#530] unnecessary ptr check
json.Unmarshaler - [#531] missing write-barrier when truncate empty slice
- [#533] not use rbp in JIT
New Contributors
- @ancientmodern made their first contribution in https://github.com/bytedance/sonic/pull/528
- @CrazyHarb made their first contribution in https://github.com/bytedance/sonic/pull/521
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.1...v1.10.2
- Go
Published by AsterDY over 2 years ago
https://github.com/bytedance/sonic - v1.10.1
Feature
Bugfix
- #504 check error before
Set/Unset/Add() - #520 over boundary bugs of skip number and tolower in native c
New Contributors
- @jimyag made their first contribution in https://github.com/bytedance/sonic/pull/501
- @hitzhangjie made their first contribution in https://github.com/bytedance/sonic/pull/505
- @xiezheng-XD made their first contribution in https://github.com/bytedance/sonic/pull/516
- @andeya made their first contribution in https://github.com/bytedance/sonic/pull/527
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.0...v1.10.1
- Go
Published by AsterDY almost 3 years ago
https://github.com/bytedance/sonic - v1.10.0
Feature
- [#493] support Go1.21.0
- #471 add
ast.Visitorfor transversing JSON in-place - [#470] add
Valid()API
Bugfix
- [#486] possible overflowed instruction while handling
bytetype - #484 avoid scratched memory of returned error
- #496 Exist() didn't check Valid() first
- #498 drop ast.Node API
UnsafeArray()andUnsafeMap()(Break Change)
Optimization
- [#393] refactor
asm2asmto avoidSIGPROFcrashing, and enable traceback when C function panics - #464 use linked chunk as fundamental storage for nodes to keep node pointer valid (Break Change)
- #464 avoid malloc when meeting empty values, and inline header chunk into lazy-parsing stack to reduce malloc. The performance of
Parse()\Load()\Interface()promoted 10~60% - #475 pass
skipnumberflag to avoid decoding numbers
New Contributors
- @xumingyukou made their first contribution in https://github.com/bytedance/sonic/pull/447
- @zhongxinghong made their first contribution in https://github.com/bytedance/sonic/pull/471
Full Changelog: https://github.com/bytedance/sonic/compare/v1.9.2...v1.10.0
- Go
Published by AsterDY almost 3 years ago
https://github.com/bytedance/sonic - v1.10.0-rc2
Optimization
- #475 pass
skipnumberflag to avoid decoding numbers - [#483] update base64x to finish asm2asm refactor
Feature
- #471 add
ast.Visitorfor iterating JSON into custom generic data containers in-place
New Contributors
- @zhongxinghong made their first contribution in https://github.com/bytedance/sonic/pull/471
Full Changelog: https://github.com/bytedance/sonic/compare/v1.10.0-rc...v1.10.0-rc2
- Go
Published by AsterDY almost 3 years ago
https://github.com/bytedance/sonic - v1.10.0-rc
Bugfix
- [#464] use linked chunk as fundamental storage for nodes, to keep returned
ast.Nodepointer valid.- BREAK CHANGE:
ast.Unset()now WON'T changeast.Len()andast.Index() - BREAK CHANGE:
ast.UnsafeArray()andast.UnsafeMap()are deprecated and user SHOULDN'T modify node based on these API
- BREAK CHANGE:
- [#393] refactor
asm2asmto avoid crashing when the program gets panic or profiled- BREAK CHANGE: sonic now only support Go 1.16~1.20 ## Feature
- [#470] add
Valid()API on main package ## Optimization - [#464] reduce memory allocation when loading nodes,
ast.Load()performance now speeds up 20%~60% - [#393]: call native C function by register-based ABI in
ast.Node
New Contributors
- @xumingyukou made their first contribution in https://github.com/bytedance/sonic/pull/447
Full Changelog: https://github.com/bytedance/sonic/compare/v1.9.2...v1.10.0-rc
- Go
Published by AsterDY almost 3 years ago
https://github.com/bytedance/sonic - v1.9.2
Bugfix
- [#446] refactor sonic/loader package and fix funcname() bug
- [#457] fix only first opt effective on
internal/encoder/Pretouch() - [#461] fix compatibilty of overflowed float32 with STD
Optimization
- [#444] try checking integrity of json stream first instead of decoding
New Contributors
- @baijinping made their first contribution in https://github.com/bytedance/sonic/pull/457
Full Changelog: https://github.com/bytedance/sonic/compare/v1.9.1...v1.9.2
- Go
Published by AsterDY almost 3 years ago
https://github.com/bytedance/sonic - v1.9.1
Bugfix
- [#436] Fix the invalid cmpeq instruction in windows
- [#438] Initialize the cap and len of the empty slices
Document
- [#439] Add doc for decoder and encoder APIs
Full Changelog: https://github.com/bytedance/sonic/compare/v1.9.0...v1.9.1
- Go
Published by liuq19 about 3 years ago
https://github.com/bytedance/sonic - v1.9.0
Feature
- [#430]
decoderandencoderpackage support fallback on not-supported envs
Bugfix
- [#433] incorrectly use
movlagreimm64to memory instruction in jit
Doc
- [#428] add Chinese translation for introduction & readme
New Contributors
- @Dorapower made their first contribution in https://github.com/bytedance/sonic/pull/428
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.10...v1.9.0
- Go
Published by AsterDY about 3 years ago
https://github.com/bytedance/sonic - v1.8.10
Bigfix
- fix: quote empty string key in ast
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.9...v1.8.10
- Go
Published by liuq19 about 3 years ago
https://github.com/bytedance/sonic - v1.8.9
Bugfix
Optimization
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.8...v1.8.9
- Go
Published by AsterDY about 3 years ago
https://github.com/bytedance/sonic - v1.8.8
Bugfix
- [#400] unmarshal recursive pointer type
- [#404] incorrectly handle alias type of pointer in struct
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.7...v1.8.8
- Go
Published by AsterDY about 3 years ago
https://github.com/bytedance/sonic - v1.8.7
Bugfix
- [#392] fix unmarshal into named pointer type with unmarshaler
- [#396] fix marshal direct struct/array type with marshaler
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.6...v1.8.7
- Go
Published by liuq19 about 3 years ago
https://github.com/bytedance/sonic - v1.8.6
Bugfix
- [#387] match empty string in json path
- [#388] add mutex lock for registerModule
- [#389] validate raw-node JSON strictly
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.5...v1.8.6
- Go
Published by AsterDY about 3 years ago
https://github.com/bytedance/sonic - v1.8.5
Bugfix
- [#376] out-of-bound for single unclosed string
- [#380, #383] export not found error in ast get
- [#382] decimal map key may be truncated and populated unexpectedly
Feature
- [#382] add options
Default(Encoder|Decoder)BufferSizeto make initial buffer size adjustable
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.3...v1.8.5
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.8.3
Bugfix
- [#372] omit checkptr detects on unsafe functions
- [#373] return error when
Get()from incomplete json value
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.2...v1.8.3
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.8.2
Bugfix
- #369 failed to use memory pool after passing UTF8 validation
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.1...v1.8.2
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.8.1
Feature
- [#362] generic loader for go1.16~1.17 ## Bugfix
- [#365] add
nocheckptrdirective
Full Changelog: https://github.com/bytedance/sonic/compare/v1.8.0...v1.8.1
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.8.0
Feature
- [#350] add
Get()API onnot-amd64envs - [#354] more complete function loader and support Go 1.20
- [#357] replace invalid utf8 char with '\ufffd', which is n accord with
encoding/json - [#361] add env option
SONIC_STOP_PROFILINGto stop profiling on demands, working around for issue #310
Full Changelog: https://github.com/bytedance/sonic/compare/v1.7.0...v1.8.0
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.7.1
Feature
- [#350] export
Get()API onnot-amd64envs - [#354] add more complete function loader. Also support Go 1.20
- [#358] fallback on unsupported go versions
Full Changelog: https://github.com/bytedance/sonic/compare/v1.7.0...v1.7.1
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.7.0
Feature
- #341
sonic.Get()andast.Nodesupportnot-amd64CPU arch - #346 not clear memory after decoding failed
Bugfix
- [#342] stop
SIGPROFtraceback while calling native functions, in case of crashing - #336 lose pointer-value message for deep-layer struct
- #343 not support concrete-type key implementing
encoding.TextMarshalerwhile sorting map
Optimization
- #345 using better skipping algorithm,
sonic.Get()now is 2~9x faster than before
Full Changelog: https://github.com/bytedance/sonic/compare/v1.6.0...v1.7.0
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.6.1
Feature
- #341
ast.Nodesupportnot-amd64CPU arch - [#342] stop
SIGPROFtraceback while calling native functions
Bugfix
- #336 lose pointer-value message for deep-layer struct
- #343 not support concrete-type key implementing
encoding.TextMarshalerwhile sorting map
Full Changelog: https://github.com/bytedance/sonic/compare/v1.6.0...v1.6.1
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.6.0
Feature
- [#305] only use
SSEinstead ofSSE4to be compatible with oldx86CPU - [#306] add dummy interface of
pretouch()undernot-amd64arch - #325 support skipping mismatched-typed value while binding
- [#329] support decode json-encoded (with escaping characters) base64 string
Bugfix
- #314 iterator panic while traversing the empty object
- #320 clear corrupt memory when decoding failed
Optimization
- [#302] reduce memory pool size of JIT's stack (1~3+MB per
P) - [#324] reduce type assertions in
ast
Full Changelog: https://github.com/bytedance/sonic/compare/v1.5.0...v1.6.0
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.6.0-rc
Feature
- #325 support skipping mismatched-typed value while binding
- #320 clear corrupt memory when decoding failed
- [#306] add dummy interface of
pretouch()undernot-amd64arch
Bugfix
- [#305] only use
SSEinstead ofSSE4to be compatible with oldx86CPU - #314 iterator panic while traversing the empty object
Optimization
- [#302] reduce memory pool size of JIT's stack (1~3+MB per
P) - #324 reduce type assertion
Full Changelog: https://github.com/bytedance/sonic/compare/v1.5.0...v1.6.0-rc
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.5.0
Feature
- #294 support more loose type-casting (breaking change)
- [#299] move third-party tests into another module ## Bugfix
- [#296]#295
StreamDecoderunexpectedly stopped while decoding buffer-truncated numbers ## Optimization - #291 faster and more accurate (for float32->float64)
ftoa()implementation, promoting 5%~50% performance of float encoding
Full Changelog: https://github.com/bytedance/sonic/compare/v1.4.0...v1.5.0
- Go
Published by AsterDY over 3 years ago
https://github.com/bytedance/sonic - v1.5.0-rc
Feature
#294 support looser type-casting (breaking change)
Bugfix
[#295]#296 StreamDecoder unexpectedly stop while skipping incomplete number
Full Changelog: https://github.com/bytedance/sonic/compare/v1.4.0...v1.5.0-rc
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - v1.4.0
Feature
- [#275] support Go 1.19
- [#280] adapt to
SSE4-onlyCPU on archAMD64and no longer limit usage on Mac-M1 machine - [#287] add option
MaxInlineDepthfor adjusting compilation inline depth - #218 add encoder option
NoNullSliceOrMap - #253 add option
ValidateStringto validate if string value is UTF8 - #249 add more strict casting API
- #262 support casting
V_STRINGto number - #278 support cast
nullto zero value (break change)
Bugfix
- #243 insufficient buffer size check for
OP_i32and panicinvalid memory address or nil pointer dereference - #243 marshal escape '\b' and '\f' inconsistently with encoding/json
- #259 handle map without dereferencing pointer when calling
call_marshaler_v - #254 didn't return io.EOF error when read nothing from io.Reader
- #261 didn't check ',' before object key due to imperfect FSM
- #267
StreamDecoderreturns error when run out of buffer while skipping value - #268 wrongly set options and panic
can't set OptionUseInt64 and OptionUseNumber both - #250
checkRaw()didn't check ifNodeis nil pointer first
Optimization
- [#287] reduce default max inline depth (from 5 to 3) for less compilation time and better performance
- #237 remove bound and loop unrolling in quote
- #239 add more benchmarks on different structures
Full Changelog: https://github.com/bytedance/sonic/compare/v1.3.0...v1.4.0
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - v1.3.5
Feature
- [#275] support Go 1.19
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - 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: https://github.com/bytedance/sonic/compare/v1.3.3...v1.3.4
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - v1.3.3
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: https://github.com/bytedance/sonic/compare/v1.3.2...v1.3.3
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - v1.3.2
Feature
- [#249] feat:(ast) Add more strict casting APIs (
StrictXXX()) ## Bugfix - [#243] fix:(encoder) Escape
\b/\flike encoding/json - [#250] fix:(ast)
checkRaw()checks nil-pointer first - [#254] fix: (decoder) return io.EOF when read nothing from io.Reader
Full Changelog: https://github.com/bytedance/sonic/compare/v1.3.1...v1.3.2
- Go
Published by AsterDY almost 4 years ago
https://github.com/bytedance/sonic - 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: https://github.com/bytedance/sonic/compare/v1.3.0...v1.3.1
- Go
Published by AsterDY about 4 years ago
https://github.com/bytedance/sonic - v1.3.0
Feature
- [#233] add configurable
sonic.APIto be compatible withencoding/jsonlibrary andARMarch. - [#225] support streaming IO with
encoder.StreamEncoderanddecoder.StreamDecoder. - [#228] support
windowsOS. ## Bugfix - #230 fix the invalid length of output buffer caused by register-scratching bug under encoding error.
- #224 add defensive string-pointer-checking to avoid crashes on native-C stack.
Full Changelog: https://github.com/bytedance/sonic/compare/v1.2.0...v1.3.0
- Go
Published by AsterDY about 4 years ago
https://github.com/bytedance/sonic - v1.2.2
What's Changed
- fix: some typos by @liuq19 in https://github.com/bytedance/sonic/pull/221
- fix: add nil pointer check by @AsterDY in https://github.com/bytedance/sonic/pull/224
- fix (encoder): spill
RL(buffer length) register while calling internal encoders in case of it got scratched by @AsterDY in https://github.com/bytedance/sonic/pull/230 - feat: support for Windows by @ii64 in https://github.com/bytedance/sonic/pull/228
New Contributors
- @ii64 made their first contribution in https://github.com/bytedance/sonic/pull/228
Full Changelog: https://github.com/bytedance/sonic/compare/v1.2.1...v1.2.2
- Go
Published by AsterDY about 4 years ago
https://github.com/bytedance/sonic - v1.2.1
What's Changed
[#216 ]doc: update readme [#215] fix: base64x' native decoder stack-overflow under AVX2 CPU
Full Changelog: https://github.com/bytedance/sonic/compare/v1.2.0...v1.2.1
- Go
Published by AsterDY about 4 years ago
https://github.com/bytedance/sonic - v1.2.0
Feature
- [#214] support Go 1.18
- [#208] add fuzz test in Go 1.18
- [#197] add API
MarshalString() - #192 add option
CopyString() - [#196] allow decoding string value as
json.Numberin binding scenario ## Bugfix - [#194] check nil pointer when encoding a pointer receiver of
json.Marshaler - [#188] fix nil panic when loading on plugin mode
- [#209] ignore overflow-check while decoding
json.Numberand optimize
Full Changelog: https://github.com/bytedance/sonic/compare/v1.1.1...v1.2.0
- Go
Published by AsterDY about 4 years ago
https://github.com/bytedance/sonic - v1.1.1
Feature
- #192 add option
CopyString()## Bugfix - [#194] check nil pointer for
Marshalerby @AsterDY in https://github.com/bytedance/sonic/pull/194
Full Changelog: https://github.com/bytedance/sonic/compare/v1.1.0...v1.1.1
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - v1.1.0
Feature
[#171] support HTML escaping
[#189] support JSON validation and skipping
[#168] add optimizing options encoder.CompactMarshaler and encoder.NoQuoteTextMarshaler
Bugfix
[#187] prevent premature GC on decoded string values [#181] add GC write barrier for Go1.15 [#179] check number ending when skipping numbers
Full Changelog: https://github.com/bytedance/sonic/compare/v1.0.0...v1.1.0
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - Release v1.0.0
Feature
- [#155]
ast.Nodesupports containinginterface{} - [#164]
ast.Nodesupports sorting pair keys - [#152] syntax error always shows related JSON (quoted) ## Bugfix
- [#148] align 'string' option in struct tag as encoding/json
- [#155] quote string when call
node.MarshalJSON() - [#156, #159] relocate stack pointers for GC recognition
- [#161] prevent out-of-bounds accessing in
native.advance_string() - [#162] shrink function stacks and achieve stack-split check
- [#166] keep passed buffer alive when encoding
Full Changelog: https://github.com/bytedance/sonic/compare/v1.0.0-rc.3...v1.0.0
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - v1.0.0-rc.3
Feature
- [#116] support Go 1.17
- [#137] add compiler option
WithCompileRecursiveDepthto pretouch recursively for large/deep struct ## Bugfix - [#142] correct the field priority as encoding/json in case-insensitive match
- [#145] use global variables to keep all arguments and locals alive
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - v1.0.0-rc.2
Bugfix
- [#127] keep internal pointers alive while
Marshal()orUnmarshal() - [#131] generate
gcWriteBarrierin JIT (only support Go1.16 [#134]) - [#132] fix stack-overflow error (
json.UnsupportedValue) after frequent errors - [#129] avoid the pointer of argument
valcleared while debugging
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - v1.0.0-rc.1
Improvement
- [#124] add node.Load()/LoadAll() to support concurrency ## Bugfix
- [#122 ] add runtime.KeepAlive() to avoid premature GC during Marshal()/Unmarshal()
- Go
Published by AsterDY over 4 years ago
https://github.com/bytedance/sonic - v1.0.0-rc
Bugfix
- [ #107 ] ignored the UTF-16 surrogate pair after an invalid unicode
- [ #108 ] couldn't skip zero-based exponent in skip_number()
- [ #112 ] returned error when unmarshalling invalid base64-encoded strings
- [ #113 ] redundantly handled struct-typed fields' "omitempty" tag
- [ #115 ] encoder.SortMapKeys flag didn't work when marshalling integer-key map
- Go
Published by AsterDY over 4 years ago