Path to this page:
./
textproc/ruby-multi_json,
General-purpose swappable JSON backend library
Branch: CURRENT,
Version: 1.21.1,
Package name: ruby33-multi_json-1.21.1,
Maintainer: pkgsrc-usersMultiJSON
Lots of Ruby libraries utilize JSON parsing in some form, and everyone has
their favorite JSON library. In order to best support multiple JSON parsers
and libraries, multi_json is a general-purpose swappable JSON backend library.
Required to run:[
lang/ruby26-base]
Required to build:[
pkgtools/cwrappers]
Master sites:
Filesize: 26 KB
Version history: (Expand)
- (2026-05-05) Updated to version: ruby33-multi_json-1.21.1
- (2026-04-12) Updated to version: ruby33-multi_json-1.20.1
- (2026-01-18) Updated to version: ruby32-multi_json-1.19.1
- (2025-08-02) Updated to version: ruby32-multi_json-1.17.0
- (2021-10-07) Updated to version: ruby27-multi_json-1.15.0
- (2020-09-14) Updated to version: ruby26-multi_json-1.15.0
CVS history: (Expand)
2026-05-05 15:25:47 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
textproc/ruby-multi_json: update to 1.21.1
1.21.0 (2026-05-02)
Every deprecation introduced here will be removed in 2.0.0. Upgrade to
1.21.0, run your app or test suite with ruby -W:deprecated to surface the
warnings, migrate each call site to the new canonical names, then pin ~> 2.0
once 2.0.0 ships.
Added
* Rename the MultiJson constant to MultiJSON (all-caps) to match the project
name, Ruby stdlib JSON, and the all-caps treatment of the JSON acronym
across other languages. The legacy MultiJson constant continues to work
as a thin delegator via method_missing and const_missing, so
MultiJson.parse(...), MultiJson::Adapters::Oj, and rescue
MultiJson::ParseError all resolve to their MultiJSON counterparts.
* Add MultiJSON.parse and MultiJSON.generate as the new canonical names for
the primary parse and generate methods, matching Ruby stdlib JSON.parse /
JSON.generate, the JSON spec (RFC 8259), and sister library MultiXml.
* Add MultiJSON.parse_options / MultiJSON.parse_options= and
MultiJSON.generate_options / MultiJSON.generate_options= as the new
canonical option setters.
* Accept symbolize_names: as the canonical option name matching Ruby
stdlib's JSON.parse(str, symbolize_names: true). The deprecated
symbolize_keys: option continues to work and emits a one-time warning when
passed at any of the three option layers (call-site,
MultiJSON.parse_options=, adapter defaults :load).
* Replace the two-adapter Benchmark.ips smoke test in benchmark.rb with a
full adapter comparison matrix (parse + dump across nine workloads) and
promote it to a top-level rake benchmark task. A new --verify-preference
flag asserts that MultiJSON::AdapterSelector::ADAPTERS matches the
observed throughput ranking, with a 10% tolerance for adjacent ties; CI
runs it on every push so the ordering can't silently drift.
Changed
* Reorder MultiJSON::AdapterSelector::ADAPTERS so the JSON gem is tried
before fast_jsonparser/oj/yajl on MRI and TruffleRuby, matching the
throughput ranking in the bundled benchmark suite on Ruby 3.4+. The hash
is split per platform so JRuby still prefers jr_jackson. Affects
auto-detection only when more than one of those adapters is loaded;
explicitly selecting an adapter with MultiJSON.use(:adapter) is unchanged.
Deprecated
* The MultiJson constant in favor of MultiJSON.
* MultiJSON.load in favor of MultiJSON.parse.
* MultiJSON.dump in favor of MultiJSON.generate.
* MultiJSON.load_options / MultiJSON.load_options= in favor of
MultiJSON.parse_options / MultiJSON.parse_options=.
* MultiJSON.dump_options / MultiJSON.dump_options= in favor of
MultiJSON.generate_options / MultiJSON.generate_options=.
* The :symbolize_keys parse option in favor of :symbolize_names.
All deprecated names continue to work and emit a one-time warning on first
use. Warnings are tagged with Ruby's :deprecated category, so noisy apps can
silence the whole set with Warning[:deprecated] = false and
deprecation-aware tooling (ruby -W:deprecated, CI linters) picks them up.
The old names will be removed in 2.0.
1.21.1 (2026-05-04)
Fixed
* Fix MultiJson.method(:load) resolving to Kernel#load instead of the
legacy-constant forwarder (#66). The 1.21.0 shim forwarded calls via
method_missing, but Module#method doesn't consult method_missing, so
libraries that capture decoders as Method objects (Sawyer, used by Octokit
and Danger) crashed with LoadError when the captured method tried to
interpret the JSON string as a file path. Define an explicit singleton
method on MultiJson for every public method MultiJSON exposes so
Module#method finds the forwarder directly.
|
2026-04-12 17:12:59 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
textproc/ruby-multi_json: update to 1.20.1
1.20.0 (2026-04-10)
Changrs from 1.19.1 are too many to write here, please refer:
<https://github.com/sferik/multi_json/blob/main/CHANGELOG.md>.
1.20.1 (2026-04-12)
* Fix JsonGem#load raising ParseError on ASCII-8BIT strings that contain
valid UTF-8 bytes (#64). Ruby HTTP clients tag response bodies as
ASCII-8BIT by default; the 1.20.0 change from force_encoding to encode
broke the dominant real-world case by trying to transcode each byte
individually. Switch back to force_encoding followed by a valid_encoding?
guard so genuinely invalid byte sequences still surface as ParseError.
* Validate custom adapters during MultiJson.use and MultiJson.load/dump with
an :adapter option, raising MultiJson::AdapterError immediately if the
adapter does not respond to .load, .dump, or define a ParseError constant.
* Validate OptionsCache.max_cache_size= to reject nil, zero, negative, and
non-integer values with a clear ArgumentError.
|
2026-01-18 15:30:25 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
textproc/ruby-multi_json: update to 1.19.1
1.18.0 (2025-12-01)
* Fix conflict between JSON gem and ActiveSupport
1.19.0 (2025-12-26)
* Fix serialization of ActiveSupport-enhanced objects
1.19.1 (2025-12-26)
* Restore deprecated encode/decode methods
|
2025-08-02 07:11:32 by Takahiro Kambe | Files touched by this commit (3) |  |
Log message:
textproc/ruby-multi_json: update to 1.17.0
1.16.0 (2025-07-10)
* Remove NSJSONSerialization
* Stop referencing JSON::PRETTY_STATE_PROTOTYPE
* Drop support for Ruby versions < 3.2
* Move repo from @intridea to @sferik
* JsonCommon: force encoding to UTF-8, not binary
* Stop setting defaults in JsonCommon
* Make json_pure an alias of json_gem
1.17.0 (2025-07-19)
* Revert minimum ruby version requirement
|
| 2021-10-26 13:23:42 by Nia Alarie | Files touched by this commit (1161) |
Log message:
textproc: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Unfetchable distfiles (fetched conditionally?):
./textproc/convertlit/distinfo clit18src.zip
|
| 2021-10-07 17:02:49 by Nia Alarie | Files touched by this commit (1162) |
Log message:
textproc: Remove SHA1 hashes for distfiles
|
2020-09-14 18:06:03 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
textproc/ruby-multi_json: update to 1.15.0
Update ruby-multi_json pacakge to 1.15.0.
1.15.0 (2020-07-10)
* Improve detection of json_gem adapter
|
2020-03-24 17:57:02 by Takahiro Kambe | Files touched by this commit (2) |  |
Log message:
textproc/ruby-multi_json: update to 1.14.1
Update ruby-multi_json to 1.14.1.
pkgsrc change: add "USE_LANGUAGES= # none".
1.14.1
------
* [Fix a warning in Ruby \
2.7](https://github.com/intridea/multi_json/commit/26a94ab8c78a394cc237e2ea292c1de4f6ed30d7)
1.14.0
------
* [Support Oj 3.x \
gem](https://github.com/intridea/multi_json/commit/5d8febdbebc428882811b90d514f3628617a61d5)
|