perl-JSON-XS - JSON serialising/deserialising, done correctly and fast

Property Value
Distribution openSUSE Leap 15.1
Repository openSUSE Oss all
Package filename perl-JSON-XS-3.04-lp151.2.3.x86_64.rpm
Package name perl-JSON-XS
Package version 3.04
Package release lp151.2.3
Package architecture x86_64
Package type rpm
Category Development/Libraries/Perl
License Artistic-1.0 or GPL-1.0+
Maintainer -
Download size 103.97 KB
Installed size 252.68 KB
This module converts Perl data structures to JSON and vice versa. Its
primary goal is to be _correct_ and its secondary goal is to be _fast_. To
reach the latter goal it was written in C.
Beginning with version 2.0 of the JSON module, when both JSON and JSON::XS
are installed, then JSON will fall back on JSON::XS (this can be
overridden) with no overhead due to emulation (by inheriting constructor
and methods). If JSON::XS is not available, it will fall back to the
compatible JSON::PP module as backend, so using JSON instead of JSON::XS
gives you a portable JSON API that can be fast when you need it and doesn't
require a C compiler when that is a problem.
As this is the n-th-something JSON module on CPAN, what was the reason to
write yet another JSON module? While it seems there are many JSON modules,
none of them correctly handle all corner cases, and in most cases their
maintainers are unresponsive, gone missing, or not listening to bug reports
for other reasons.
See MAPPING, below, on how JSON::XS maps perl values to JSON values and
vice versa.


Package Version Architecture Repository
perl-JSON-XS - - -


Name Value
/usr/bin/perl - -
perl(:MODULE_COMPAT_5.26.1) -
perl(Types::Serialiser) -
perl(common::sense) -


Name Value
perl(JSON::XS) = 3.04
perl-JSON-XS = 3.04-lp151.2.3
perl-JSON-XS(x86-64) = 3.04-lp151.2.3


Type URL
Binary Package perl-JSON-XS-3.04-lp151.2.3.x86_64.rpm
Source Package perl-JSON-XS-3.04-lp151.2.3.src.rpm

Install Howto

Install perl-JSON-XS rpm package:

# zypper install perl-JSON-XS




2017-08-18 -
- updated to 3.04
see /usr/share/doc/packages/perl-JSON-XS/Changes
TODO: move json_xs to types::serialiser
3.04 Thu Aug 17 04:30:47 CEST 2017
- change exponential realloc algorithm on encoding and string decoding to be
really exponential (this helps slow/debugging allocators such as libumem)
(reported by Matthew Horsfall).
- string encoding would needlessly overallocate output space
(testcase by Matthew Horsfall).
- be very paranoid about extending buffer lengths and croak if buffers get too large,
which might (or might not) improve security.
- add cbor-packed type to json_xs.
- switch from YAML to YAML::XS in json_xs, as YAML is way too buggy and outdated.
2016-11-17 -
- updated to 3.03
see /usr/share/doc/packages/perl-JSON-XS/Changes
TODO: rfc7464
TODO: Victor Efimov
3.03 Wed Nov 16 20:20:59 CET 2016
- fix a bug introduced by a perl bug workaround that would cause
incremental parsing to fail with a sv_chop panic.
- json_xs: toformat failure error message fixed.
- json_xs: allow cyclic data structures in CBOR.
2016-03-11 -
- updated to 3.02
see /usr/share/doc/packages/perl-JSON-XS/Changes
TODO: how to cope with tagged values and standard json decoders
TODO: investigate magic (Eric Brine)
2013-11-25 -
- updated to 3.01
- backport to perls < 5.18 (reported by Paul Howarth).
- implemented an object tagging extension (using the
Types::Serialiser serialisation protocol).
- reworked the documentation regarding object serialisation,
add a new OBJECT SERIALISATION section that explains the
whole process.
- new setting: allow_tags.
- switch to Types::Serialiser booleans.
- remove to_json/from_json.
- other minor improvements to the documentation.
2013-06-05 -
- updated to 2.34
- work around bugs in perl 5.18 breaking more than 100
widely used modules, without a fix in sight because
p5pers don't care about CPAN anymore.
- when canonicalising, only allocate up to 64 hash key
pointers on the stack. for larger hashes, use the heap,
to avoid using too much stackspace.
- discuss the problem with setlocale (reported by a few victims).
- internal encode/decode XS wrappers did not expect stack
moves caused by callbacks (analyzed and testcase by Jesse Luehrs).
- add bencode as to/from option in bin/json_xs.
- add -e option to json_xs, and none and string in/out formats.
2011-11-18 -
- use original .tar.gz
2011-08-13 -
- update to 2.32:
* fix a bug in the initial whitespace accumulation
- changes from 2.31:
* don't accumulate initial whitespace in the incremental buffer (this can be
useful to allow whitespace-keepalive on a tcp connection without triggering
the max_size limit)
* properly croak on some invalid inputs that are not strings (e.g. undef)
when trying to decode a json text
2011-01-17 -
- update to 2.3(0)
- make sure decoder doesn't change the decoding in the incremental
parser (testcase provided by Hendrik Schumacher).
- applied patch by DaTa for Data::Dumper support in json_xs.
- added -t dump support to json_xs, using Data::Dump.
- added -f eval support to json_xs.
2010-12-01 -
- switch to perl_requires macro

See Also

Package Description
perl-JavaScript-Minifier-XS-0.11-lp151.2.2.x86_64.rpm XS based JavaScript minifier
perl-LWP-MediaTypes-6.02-lp151.2.1.noarch.rpm guess media type for a file or a URL
perl-LWP-Online-1.08-lp151.2.1.noarch.rpm Does your process have access to the web
perl-LWP-Protocol-https-6.06-lp151.2.1.noarch.rpm Provide https support for LWP::UserAgent
perl-Lexical-Persistence-1.023-lp151.2.1.noarch.rpm Persistent lexical variable values for arbitrary calls.
perl-Lexical-SealRequireHints-0.011-lp151.2.2.x86_64.rpm Prevent Leakage of Lexical Hints
perl-Lingua-EN-FindNumber-1.32-lp151.2.1.noarch.rpm Locate (written) numbers in English text
perl-Lingua-EN-Inflect-1.903-lp151.2.1.noarch.rpm Convert singular to plural. Select "a" or "an"
perl-Lingua-EN-Inflect-Number-1.12-lp151.2.1.noarch.rpm Force number of words to singular or plural
perl-Lingua-EN-Inflect-Phrase-0.20-lp151.2.1.noarch.rpm Inflect short English Phrases
perl-Lingua-EN-Number-IsOrdinal-0.05-lp151.2.1.noarch.rpm detect if English number is ordinal or cardinal
perl-Lingua-EN-Sentence-0.30-lp151.2.1.noarch.rpm Split Text Into Sentences
perl-Lingua-EN-Tagger-0.28-lp151.2.1.x86_64.rpm Part-of-speech tagger for English natural language processing
perl-Lingua-EN-Words2Nums-0.18-lp151.2.1.noarch.rpm convert English text to numbers
perl-Lingua-PT-Stemmer-0.02-lp151.2.1.noarch.rpm Portuguese language stemming