enrich icon indicating copy to clipboard operation
enrich copied to clipboard

Common: replace jackson with jawn

Open oguzhanunlu opened this issue 5 years ago • 0 comments

Common Enrich codebase uses both jackson and jawn to parse Circe AST. There are semantic differences between both parsers as explained, copy-pasting below just in case. These differences might lead to false positives/negatives in edge cases.

Not all guarantees that hold for Jawn-based parsing and the default printer will hold for the Jackson-based
versions. Jackson's handling of numbers in particular differs significantly: it doesn't distinguish positive and
negative zeros, it may truncate large JSON numbers or simply fail to parse them, it may print large numbers
as strings, etc.

jawn is also faster than jackson which makes it more appealing.

oguzhanunlu avatar Oct 28 '20 10:10 oguzhanunlu