A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/ruby/json

https://github.com/ruby/json - v3.0.0.rc1

With the removal of the insecure create_additions option, JSON.load and JSON.dump are
now safe to use. Them being unsafe by default caused multiple security vulnerabilites in the past.

If you did depend on create_additions, the recommended migration is to implement a custom serializer using
JSON::Coder
.

All the mutable default options, such as JSON.load_default_options have been removed.
They were preventing Ractor compatiblity, and causing bug in libraries using JSON expecting the default behavior.
JSON methods now always behave the same unless monkey patched.

All methods options are now either keyword arguments or checked like keyword arguments, meaning
unknown options such as typos raise ArgumentError.

Duplicated keys are now rejected by default.

JavaScript comments in documents are no longer supported by default.

Numerous rarely used aliases have been removed.

  • JSON.load defaults are now safe to use.
  • All unknown options are now cause an ArgumentError rather than to be ignored.
  • The allow_comments parsing option now default to false.
  • The allow_duplicate_key option now defaults to false, for both parsing and generating JSON.
  • Removed the limit positional argument of JSON.dump.
  • Removed the escape_slash alias of script_safe.
  • Removed Kernel#j and Kernel#jj.
  • Removed JSON.load_default_options.
  • Removed JSON.unsafe_load_default_options.
  • Removed JSON.dump_default_options.
  • Removed JSON::State#[] and JSON::State#[]=.
  • Removed JSON.unparse.
  • Removed JSON.fast_generate.
  • Removed JSON.fast_unparse.
  • Removed JSON.pretty_unparse.
  • Removed JSON.restore.
  • Removed JSON::PRETTY_STATE_PROTOTYPE.
  • Removed the insecure create_additions option.
  • Removed JSON::GenericObject.

Full Changelog: https://github.com/ruby/json/compare/v2.21.2...v3.0.0.rc1

- Ruby
Published by byroot about 2 months ago

https://github.com/ruby/json - v2.21.2

What's Changed

  • Fix a use-after-free bug in JSON::ResumableParser. [GHSA-9hj4-r449-hfvc].

Full Changelog: https://github.com/ruby/json/compare/v2.21.1...v2.21.2

- Ruby
Published by byroot 2 months ago

https://github.com/ruby/json - v2.21.0

What's Changed

  • JSON.generate now accept a sort_keys option, which takes either a boolean or a block.
  • Added #empty? and #partial_value? methods on JSON::ResumableParser.
  • Numerous correctness and performance fixes for JSON::ResumableParser.
  • Avoid triggering Ruby's float out of range warning when parsing out of range numbers.
  • Declare C types with Ruby 4.1 RUBY_TYPED_THREAD_SAFE_FREE.

Full Changelog: https://github.com/ruby/json/compare/v2.20.0...v2.21.0

- Ruby
Published by byroot 3 months ago

https://github.com/ruby/json - v2.20.0

What's Changed

  • Both C and Java parsers are no longer recursive, so parsing very deep documents with max_nesting: false will no longer
    result in SystemStackError stack level too deep errors.
    • The :max_nesting option still defaults to 100.
  • Optimized floating point number parsing further by replacing the ryu algorithm by a port of Eisel-Lemire Fast Float.
  • Added JSON::ResumableParser to parse streams of JSON documents. Not yet available on JRuby.
  • Deprecate default support of JavaScript comments in the parser and add allow_comments: true parsing option.
  • Integrate with Ruby 4.1 ruby_sized_xfree.

Full Changelog: https://github.com/ruby/json/compare/v2.19.8...v2.20.0

- Ruby
Published by byroot 4 months ago

https://github.com/ruby/json - v2.19.9

  • Fix buffer overflow that could lead to a crash when writing JSON directly into an IO
    with JSON.generate(object, io). [CVE-2026-54696].

Full Changelog: https://github.com/ruby/json/compare/v2.19.8...v2.19.9

- Ruby
Published by byroot 4 months ago

https://github.com/ruby/json - v2.19.8

What's Changed

  • Fix 1-byte buffer overread on EOS errors.
  • Handle invalid types passed as max_nesting option.

Full Changelog: https://github.com/ruby/json/compare/v2.19.7...v2.19.8

- Ruby
Published by byroot 4 months ago

https://github.com/ruby/json - v2.19.7

What's Changed

  • Fix some more edge cases with out of range floats.
  • Ensure the string provided to JSON.parse can't be mutated during parsing.
  • Add missing write barriers in State#dup.
  • Further validate generator depth config.

Full Changelog: https://github.com/ruby/json/compare/v2.19.6...v2.19.7

- Ruby
Published by byroot 4 months ago

https://github.com/ruby/json - v2.19.6

What's Changed

  • Cleanly handle overly large depth generator argument.
  • Add missing write barrier in ParserConfig.

Full Changelog: https://github.com/ruby/json/compare/v2.19.5...v2.19.6

- Ruby
Published by byroot 4 months ago

https://github.com/ruby/json - v2.19.5

What's Changed

  • Cap the parser to emit a maximum of 5 deprecation warnings per document. Emitting more is not helpful.

Full Changelog: https://github.com/ruby/json/compare/v2.19.4...v2.19.5

- Ruby
Published by byroot 5 months ago

https://github.com/ruby/json - v2.19.4

What's Changed

  • Fix parsing of out of range floats (very large exponents that lead to either 0.0 or Inf).

Full Changelog: https://github.com/ruby/json/compare/v2.19.2...v2.19.4

- Ruby
Published by byroot 6 months ago

https://github.com/ruby/json - v2.19.3

  • Fix handling of unescaped control characters preceeded by a backslash.

Full Changelog: https://github.com/ruby/json/compare/v2.19.2...v2.19.3

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.15.2.1

  • Fix a format string injection vulnerability in JSON.parse(doc, allow_duplicate_key: false). CVE-2026-33210

Full Changelog: https://github.com/ruby/json/compare/v2.15.2...v2.15.2.1

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.17.1.2

  • Fix a format string injection vulnerability in JSON.parse(doc, allow_duplicate_key: false). CVE-2026-33210

Full Changelog: https://github.com/ruby/json/compare/v2.17.1...v2.17.1.2

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.19.2

What's Changed

  • Fix a format string injection vulnerability in JSON.parse(doc, allow_duplicate_key: false). CVE-2026-33210

Full Changelog: https://github.com/ruby/json/compare/v2.19.1...v2.19.2

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.19.1

What's Changed

  • Fix a compiler dependent GC bug introduced in 2.18.0.

Full Changelog: https://github.com/ruby/json/compare/v2.19.0...v2.19.1

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.19.0

What's Changed

  • Fix allow_blank parsing option to no longer allow invalid types (e.g. load([], allow_blank: true) now raise a type error).
  • Add allow_invalid_escape parsing option to ignore backslashes that aren't followed by one of the valid escape characters.

Full Changelog: https://github.com/ruby/json/compare/v2.18.1...v2.19.0

- Ruby
Published by byroot 7 months ago

https://github.com/ruby/json - v2.18.1

What's Changed

  • Fix a potential crash in very specific circumstance if GC triggers during a call to to_json
    without first invoking a user defined #to_json method.

Full Changelog: https://github.com/ruby/json/compare/v2.18.0...v2.18.1

- Ruby
Published by byroot 8 months ago

https://github.com/ruby/json - v2.18.0

What's Changed

  • Add :allow_control_characters parser options, to allow JSON strings containing unescaped ASCII control characters (e.g. newlines).

Full Changelog: https://github.com/ruby/json/compare/v2.17.1...v2.18.0

- Ruby
Published by byroot 10 months ago

https://github.com/ruby/json - v2.17.1

What's Changed

  • Fix a regression in parsing of unicode surogate pairs (\uXX\uXX) that could cause an invalid string to be returned.

Full Changelog: https://github.com/ruby/json/compare/v2.17.0...v2.17.1

- Ruby
Published by byroot 10 months ago

https://github.com/ruby/json - v2.17.0

What's Changed

  • Improve JSON.load and JSON.unsafe_load to allow passing options as second argument.
  • Fix the parser to no longer ignore invalid escapes in strings.
    Only \", \\, \b, \f, \n, \r, \t and \u are valid JSON escapes.
  • Fixed JSON::Coder to use the depth it was initialized with.
  • On TruffleRuby, fix the generator to not call to_json on the return value of as_json for Float::NAN.
  • Fixed handling of state.depth: when to_json changes state.depth but does not restore it, it is reset
    automatically to its initial value.
    In particular, when a NestingError is raised, depth is no longer equal to max_nesting after the call to
    generate, and is reset to its initial value. Similarly when to_json raises an exception.

Full Changelog: https://github.com/ruby/json/compare/v2.16.0...v2.17.0

- Ruby
Published by byroot 10 months ago

https://github.com/ruby/json - v2.16.0

What's Changed

  • Deprecate JSON::State#[] and JSON::State#[]=. Consider using JSON::Coder instead.
  • JSON::Coder now also yields to the block when encountering strings with invalid encoding.
  • Fix GeneratorError messages to be UTF-8 encoded.
  • Fix memory leak when Exception is raised, or throw is used during JSON generation.
  • Optimized floating point number parsing by integrating the ryu algorithm (thanks to Josef Šimánek).
  • Optimized numbers parsing using SWAR (thanks to Scott Myron).
  • Optimized parsing of pretty printed documents using SWAR (thanks to Scott Myron).

Full Changelog: https://github.com/ruby/json/compare/v2.15.2...v2.16.0

- Ruby
Published by byroot 11 months ago

https://github.com/ruby/json - v2.15.2

What's Changed

  • Fix JSON::Coder to have one dedicated depth counter per invocation.
    After encountering a circular reference in JSON::Coder#dump, any further #dump call would raise JSON::NestingError.

Full Changelog: https://github.com/ruby/json/compare/v2.15.1...v2.15.2

- Ruby
Published by byroot 12 months ago

https://github.com/ruby/json - v2.15.1

What's Changed

  • Fix incorrect escaping in the JRuby extension when encoding shared strings.

Full Changelog: https://github.com/ruby/json/compare/v2.15.0...v2.15.1

- Ruby
Published by byroot 12 months ago

https://github.com/ruby/json - v2.15.0

What's Changed

  • JSON::Coder callback now receive a second argument to convey whether the object is a hash key.
  • Tuned the floating point number generator to not use scientific notation as aggressively.

Full Changelog: https://github.com/ruby/json/compare/v2.14.1...v2.15.0

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.14.1

What's Changed

  • Fix IndexOutOfBoundsException in the JRuby extension when encoding shared strings.

Full Changelog: https://github.com/ruby/json/compare/v2.14.0...v2.14.1

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.14.0

What's Changed

  • Add new allow_duplicate_key generator options. By default a warning is now emitted when a duplicated key is encountered.
    In json 3.0 an error will be raised.
    >> Warning[:deprecated] = true
    >> puts JSON.generate({ foo: 1, "foo" => 2 })
    (irb):2: warning: detected duplicate key "foo" in {foo: 1, "foo" => 2}.
    This will raise an error in json 3.0 unless enabled via `allow_duplicate_key: true`
    {"foo":1,"foo":2}
    >> JSON.generate({ foo: 1, "foo" => 2 }, allow_duplicate_key: false)
    detected duplicate key "foo" in {foo: 1, "foo" => 2} (JSON::GeneratorError)
    
  • Fix JSON.generate strict: true mode to also restrict hash keys.
  • Fix JSON::Coder to also invoke block for hash keys that aren't strings nor symbols.
  • Fix JSON.unsafe_load usage with proc
  • Fix the parser to more consistently reject invalid UTF-16 surogate pairs.

Full Changelog: https://github.com/ruby/json/compare/v2.13.2...v2.14.0

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.13.2

What's Changed

  • Improve duplicate key warning and errors to include the key name and point to the right caller.

Full Changelog: https://github.com/ruby/json/compare/v2.13.1...v2.13.2

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.13.1

What's Changed

  • Fix support for older compilers without __builtin_cpu_supports.

Full Changelog: https://github.com/ruby/json/compare/v2.13.0...v2.13.1

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.13.0

What's Changed

  • Add new allow_duplicate_key parsing options. By default a warning is now emitted when a duplicated key is encountered.
    In json 3.0 an error will be raised.
  • Optimize parsing further using SIMD to scan strings.

Full Changelog: https://github.com/ruby/json/compare/v2.12.2...v2.13.0

- Ruby
Published by byroot about 1 year ago

https://github.com/ruby/json - v2.12.2

  • Fix compiler optimization level.

Full Changelog: https://github.com/ruby/json/compare/v2.12.1...v2.12.2

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.12.1

What's Changed

  • Fix a potential crash in large negative floating point number generation.
  • Fix for JSON.pretty_generate to use passed state object's generate instead of state class as the required parameters aren't available.

Full Changelog: https://github.com/ruby/json/compare/v2.12.0...v2.12.1

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.12.0

What's Changed

  • Improve floating point generation to not use scientific notation as much.
  • Include line and column in parser errors. Both in the message and as exception attributes.
  • Handle non-string hash keys with broken to_s implementations.
  • JSON.generate now uses SSE2 (x86) or NEON (arm64) instructions when available to escape strings.

Full Changelog: https://github.com/ruby/json/compare/v2.11.3...v2.12.0

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.11.3

What's Changed

  • Fix a regression in JSON.pretty_generate that could cause indentation to be off once some #to_json has been called.

Full Changelog: https://github.com/ruby/json/compare/v2.11.2...v2.11.3

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.11.2

What's Changed

  • Bring back JSON::PRETTY_STATE_PROTOTYPE with a deprecation

Full Changelog: https://github.com/ruby/json/compare/v2.11.1...v2.11.2

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.11.1

What's Changed

  • Add back JSON.restore, JSON.unparse, JSON.fast_unparse and JSON.pretty_unparse.
    These were deprecated 16 years ago, but never emited warnings, only undocumented, so are
    still used by a few gems.

Full Changelog: https://github.com/ruby/json/compare/v2.11.0...v2.11.1

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.11.0

What's Changed

  • Optimize Integer generation to be ~1.8x faster.
  • Optimize Float generation to be ~10x faster.
  • Fix JSON.load proc argument to substitute the parsed object with the return value.
    This better match Marshal.load behavior.
  • Deprecate JSON.fast_generate (it's not any faster, so pointless).
  • Deprecate JSON.load_default_options.
  • Deprecate JSON.unsafe_load_default_options.
  • Deprecate JSON.dump_default_options.
  • Deprecate Kernel#j
  • Deprecate Kernel#jj
  • Remove outdated JSON.iconv.
  • Remove Class#json_creatable? monkey patch.
  • Remove deprecated JSON.restore method.
  • Remove deprecated JSON.unparse method.
  • Remove deprecated JSON.fast_unparse method.
  • Remove deprecated JSON.pretty_unparse method.
  • Remove deprecated JSON::UnparserError constant.
  • Remove outdated JSON::MissingUnicodeSupport constant.

Full Changelog: https://github.com/ruby/json/compare/v2.10.2...v2.11.0

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.10.2

What's Changed

  • Fix a potential crash in the C extension parser.
  • Raise a ParserError on all incomplete unicode escape sequence. This was the behavior until 2.10.0 unadvertently changed it.
  • Ensure document snippets that are included in parser errors don't include truncated multibyte characters.
  • Ensure parser error snippets are valid UTF-8.
  • Fix JSON::GeneratorError#detailed_message on Ruby < 3.2

Full Changelog: https://github.com/ruby/json/compare/v2.10.1...v2.10.2

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.10.1

What's Changed

Full Changelog: https://github.com/ruby/json/compare/v2.10.0...v2.10.1

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.10.0

What's Changed

  • strict: true now accept symbols as values. Previously they'd only be accepted as hash keys.
  • The C extension Parser has been entirely reimplemented from scratch.
  • Introduced JSON::Coder as a new API allowing to customize how non native types are serialized in a non-global way.
  • Introduced JSON::Fragment to allow assembling cached fragments in a safe way.
  • The Java implementation of the generator received many optimizations.

Full Changelog: https://github.com/ruby/json/compare/v2.9.1...v2.10.0

- Ruby
Published by byroot over 1 year ago

https://github.com/ruby/json - v2.9.1

What's Changed

  • Add support for Solaris 10 which lacks strnlen()

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.9.1

What's Changed

  • Add support for Solaris 10 which lacks strnlen()

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.9.0

What's Changed

  • Fix C implementation of script_safe escaping to not confuse some other 3 wide characters with \u2028 and \u2029.
    e.g. JSON.generate(["倩", "瀨"], script_safe: true) would generate the wrong JSON.
  • JSON.dump(object, some_io) now write into the IO in chunks while previously it would buffer the entire JSON before writing.
  • JSON::GeneratorError now has a #invalid_object attribute, making it easier to understand why an object tree cannot be serialized.
  • Numerous improvements to the JRuby extension.

Full Changelog: https://github.com/ruby/json/compare/v2.8.2...v2.9.0

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.8.2

What's Changed

  • JSON.load_file: explictly load the file as UTF-8

Full Changelog: https://github.com/ruby/json/compare/v2.8.1...v2.8.2

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.8.1

  • Fix the java version of the package to include the extension implementation. Only concerns JRuby.

Full Changelog: https://github.com/ruby/json/compare/v2.8.0...v2.8.1

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.8.0

What's Changed

  • Emit a deprecation warning when JSON.load create custom types without the create_additions option being explictly enabled.
    • Prefer to use JSON.unsafe_load(string) or JSON.load(string, create_additions: true).
  • Emit a deprecation warning when serializing valid UTF-8 strings encoded in ASCII_8BIT aka BINARY.
  • Bump required Ruby version to 2.7.
  • Add support for optionally parsing trailing commas, via allow_trailing_comma: true, which in cunjunction with the
    pre-existing support for comments, make it suitable to parse jsonc documents.
  • Many performance improvements to JSON.parse and JSON.load, up to 1.7x faster on real world documents.
  • Some minor performance improvements to JSON.dump and JSON.generate.

Parsing performance

Parsing performance is improved by 50-70% on realistic benchmarks, and even more on micro-benchmarks: https://gist.github.com/casperisfine/cf4b3a0594fae24b7d0eb93daaf3841a

== Parsing activitypub.json (58160 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
          json 2.7.2   638.000 i/100ms
                  oj   798.000 i/100ms
          Oj::Parser   948.000 i/100ms
           rapidjson   631.000 i/100ms
Calculating -------------------------------------
          json 2.7.2      6.423k (± 1.3%) i/s  (155.70 μs/i) -     32.538k in   5.067149s
                  oj      7.989k (± 1.0%) i/s  (125.17 μs/i) -     40.698k in   5.094544s
          Oj::Parser      9.472k (± 1.3%) i/s  (105.58 μs/i) -     47.400k in   5.005119s
           rapidjson      6.354k (± 1.1%) i/s  (157.37 μs/i) -     32.181k in   5.064962s

Comparison:
          json 2.8.0:     9510.0 i/s
          Oj::Parser:     9471.9 i/s - same-ish: difference falls within error
                  oj:     7989.4 i/s - 1.19x  slower
          json 2.7.2:     6422.5 i/s - 1.48x  slower
           rapidjson:     6354.5 i/s - 1.50x  slower


== Parsing twitter.json (567916 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
          json 2.7.2    52.000 i/100ms
                  oj    64.000 i/100ms
          Oj::Parser    76.000 i/100ms
           rapidjson    57.000 i/100ms
Calculating -------------------------------------
          json 2.7.2    526.860 (± 3.8%) i/s    (1.90 ms/i) -      2.652k in   5.042680s
                  oj    631.234 (± 1.7%) i/s    (1.58 ms/i) -      3.200k in   5.070973s
          Oj::Parser    764.354 (± 3.5%) i/s    (1.31 ms/i) -      3.876k in   5.077736s
           rapidjson    579.085 (± 2.8%) i/s    (1.73 ms/i) -      2.907k in   5.024620s

Comparison:
          json 2.8.0:      884.0 i/s
          Oj::Parser:      764.4 i/s - 1.16x  slower
                  oj:      631.2 i/s - 1.40x  slower
           rapidjson:      579.1 i/s - 1.53x  slower
          json 2.7.2:      526.9 i/s - 1.68x  slower


== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. 7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
          json 2.7.2    30.000 i/100ms
                  oj    35.000 i/100ms
          Oj::Parser    45.000 i/100ms
           rapidjson    40.000 i/100ms
Calculating -------------------------------------
          json 2.7.2    304.584 (± 3.3%) i/s    (3.28 ms/i) -      1.530k in   5.029021s
                  oj    358.572 (± 0.8%) i/s    (2.79 ms/i) -      1.820k in   5.076123s
          Oj::Parser    450.643 (± 3.1%) i/s    (2.22 ms/i) -      2.295k in   5.098150s
           rapidjson    395.304 (± 1.5%) i/s    (2.53 ms/i) -      2.000k in   5.060537s

Comparison:
          json 2.8.0:      449.8 i/s
          Oj::Parser:      450.6 i/s - same-ish: difference falls within error
           rapidjson:      395.3 i/s - 1.14x  slower
                  oj:      358.6 i/s - 1.25x  slower
          json 2.7.2:      304.6 i/s - 1.48x  slower

Full Changelog: https://github.com/ruby/json/compare/v2.7.3...v2.8.0

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.6

  • Fix a regression in JSON.generate when dealing with Hash keys that are string subclasses, call to_json on them.

Full Changelog: https://github.com/ruby/json/compare/v2.7.5...v2.7.6

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.5

What's Changed

  • Fix a memory leak when #to_json methods raise an exception.
  • Gracefully handle formatting configs being set to nil instead of "".
  • Workaround another issue caused by conflicting versions of both json_pure and json being loaded.

Full Changelog: https://github.com/ruby/json/compare/v2.7.4...v2.7.5

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.4

What's Changed

  • Workaround a bug in 3.4.8 and older https://github.com/rubygems/rubygems/pull/6490.
    This bug would cause some gems with native extension to fail during compilation.
  • Workaround different versions of json and json_pure being loaded (not officially supported).
  • Make json_pure Ractor compatible.

Full Changelog: https://github.com/ruby/json/compare/v2.7.3...v2.7.4

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.3

What's Changed

  • Numerous performance optimizations in JSON.generate and JSON.dump (up to 2 times faster).
  • Limit the size of ParserError exception messages, only include up to 32 bytes of the unparseable source.
  • Fix json-pure's Object#to_json to accept non state arguments
  • Fix multiline comment support in json-pure.
  • Fix JSON.parse to no longer mutate the argument encoding when passed an ASCII-8BIT string.
  • Fix String#to_json to raise on invalid encoding in json-pure.
  • Delete code that was based on CVTUTF.
  • Use the pure-Ruby generator on TruffleRuby.
  • Fix strict mode in json-pure to not break on Integer.

JSON.dump Performance

JSON.dump is now much faster, and on par or faster than alternative implementations:

== Encoding citm_catalog.json (500298 bytes)
ruby 3.4.0preview2 (2024-10-07 master 32c733f57b) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
        json (2.7.3)   123.000 i/100ms
                  oj   124.000 i/100ms
Calculating -------------------------------------
        json (2.7.3)      1.312k (± 1.8%) i/s  (761.91 μs/i) -      6.642k in   5.062192s
                  oj      1.278k (± 2.0%) i/s  (782.35 μs/i) -      6.448k in   5.046587s

Comparison:
        json (2.7.2):      884.0 i/s
        json (2.7.3):     1312.5 i/s - 1.48x  faster
                  oj:     1278.2 i/s - 1.45x  faster
== Encoding twitter.json (466906 bytes)
ruby 3.4.0preview2 (2024-10-07 master 32c733f57b) +YJIT +PRISM [arm64-darwin23]
Warming up --------------------------------------
        json (2.7.3)   213.000 i/100ms
                  oj   222.000 i/100ms
Calculating -------------------------------------
        json (2.7.3)      2.140k (± 2.8%) i/s  (467.19 μs/i) -     10.863k in   5.079099s
                  oj      2.303k (± 3.2%) i/s  (434.27 μs/i) -     11.544k in   5.018239s

Comparison:
        json (2.7.2):     1250.5 i/s
                  oj:     2302.7 i/s - 1.84x  faster
        json (2.7.3):     2140.5 i/s - 1.71x  faster

Full Changelog: https://github.com/ruby/json/compare/v2.7.2...v2.7.3

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.3.rc1

  • Numerous performance optimizations in JSON.generate and JSON.dump.
  • Limit the size of ParserError exception messages, only include up to 32 bytes of the unparseable source.
  • Fix json-pure's Object#to_json to accept non state arguments
  • Fix multiline comment support in json-pure.
  • Fix JSON.parse to no longer mutate the argument encoding when passed an ASCII-8BIT string.
  • Fix String#to_json to raise on invalid encoding in json-pure.
  • Delete code that was based on CVTUTF.
  • Use the pure-Ruby generator on TruffleRuby.
  • Fix strict mode in json-pure to not break on Integer.

- Ruby
Published by byroot almost 2 years ago

https://github.com/ruby/json - v2.7.2

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.7.1...v2.7.2

- Ruby
Published by hsbt over 2 years ago

https://github.com/ruby/json - v2.7.1

What's Changed

Improved

Fixed

Misc

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.7.0...v2.7.1

- Ruby
Published by hsbt almost 3 years ago

https://github.com/ruby/json - v2.7.0

What's Changed

Improved

Added

Fixed

Compatibility changes

Misc

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.6.3...v2.7.0

- Ruby
Published by hsbt almost 3 years ago

https://github.com/ruby/json - v2.6.3

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.6.2...v2.6.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.6.2

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.6.1...v2.6.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.6.1

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.6.0...v2.6.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.6.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.5.1...v2.6.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.5.1

What's Changed

Full Changelog: https://github.com/flori/json/compare/v2.5.0...v2.5.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.5.0

What's Changed

Full Changelog: https://github.com/flori/json/compare/v2.4.1...v2.5.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.4.1

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.3.1...v2.4.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.4.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.3.1...v2.4.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.3.1

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.3.0...v2.3.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.2.0...v2.3.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.2.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.1.0...v2.2.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.0.2...v2.1.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.0.4

Full Changelog: https://github.com/flori/json/compare/v2.0.3...v2.0.4

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.0.3

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.0.2...v2.0.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.0.2

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v2.0.1...v2.0.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.0.1

Full Changelog: https://github.com/flori/json/compare/v2.0.0...v2.0.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v2.0.0

What's Changed

New Contributors

Full Changelog: https://github.com/flori/json/compare/v1.8.3...v2.0.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.6

Full Changelog: https://github.com/flori/json/compare/v1.8.5...v1.8.6

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.5

Full Changelog: https://github.com/flori/json/compare/v1.8.3...v1.8.5

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.3

Full Changelog: https://github.com/flori/json/compare/v1.8.2...v1.8.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.2

Full Changelog: https://github.com/flori/json/compare/v1.8.1...v1.8.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.1

Full Changelog: https://github.com/flori/json/compare/v1.8.0...v1.8.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.8.0

Full Changelog: https://github.com/flori/json/compare/v1.7.7...v1.8.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.7

Full Changelog: https://github.com/flori/json/compare/v1.7.6...v1.7.7

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.6

Full Changelog: https://github.com/flori/json/compare/v1.7.5...v1.7.6

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.5

Full Changelog: https://github.com/flori/json/compare/v1.7.4...v1.7.5

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.4

Full Changelog: https://github.com/flori/json/compare/v1.7.3...v1.7.4

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.3

Full Changelog: https://github.com/flori/json/compare/v1.7.2...v1.7.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.2

Full Changelog: https://github.com/flori/json/compare/v1.7.1...v1.7.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.1

Full Changelog: https://github.com/flori/json/compare/v1.7.0...v1.7.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.7.0

Full Changelog: https://github.com/flori/json/compare/v1.6.7...v1.7.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.8

Full Changelog: https://github.com/flori/json/compare/v1.6.7...v1.6.8

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.7

Full Changelog: https://github.com/flori/json/compare/v1.6.5...v1.6.7

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.6

Full Changelog: https://github.com/flori/json/compare/v1.6.5...v1.6.6

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.5

Full Changelog: https://github.com/flori/json/compare/v1.6.4...v1.6.5

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.4

Full Changelog: https://github.com/flori/json/compare/v1.6.3...v1.6.4

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.3

Full Changelog: https://github.com/flori/json/compare/v1.6.2...v1.6.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.2

Full Changelog: https://github.com/flori/json/compare/v1.6.1...v1.6.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.1

Full Changelog: https://github.com/flori/json/compare/v1.6.0...v1.6.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.6.0

Full Changelog: https://github.com/flori/json/compare/v1.5.4...v1.6.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.5

Full Changelog: https://github.com/flori/json/compare/v1.5.4...v1.5.5

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.4

Full Changelog: https://github.com/flori/json/compare/v1.5.3...v1.5.4

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.3

Full Changelog: https://github.com/flori/json/compare/v1.5.2...v1.5.3

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.2

Full Changelog: https://github.com/flori/json/compare/v1.5.1...v1.5.2

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.1

Full Changelog: https://github.com/flori/json/compare/v1.5.0...v1.5.1

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.5.0

Full Changelog: https://github.com/flori/json/compare/v1.4.6...v1.5.0

- Ruby
Published by hsbt almost 4 years ago

https://github.com/ruby/json - v1.4.6-java

Full Changelog: https://github.com/flori/json/compare/v1.4.5...v1.4.6-java

- Ruby
Published by hsbt almost 4 years ago