Sereal is an efficient, compact-output, binary and feature-rich serialization protocol. The Perl encoder
is implemented as the Sereal::Encoder module, the Perl decoder correspondingly as Sereal::Decoder. They
are distributed separately to allow for safe upgrading without downtime. (Hint: Upgrade the decoder
everywhere first, then the encoder.)
This "Sereal" module is a very thin wrapper around both "Sereal::Encoder" and "Sereal::Decoder". It
depends on both and loads both. So if you have a user of both encoder and decoder, it is enough to depend
on a particular version of "Sereal" and you'll get the most recent released versions of "Sereal::Encoder"
and "Sereal::Decoder" whose version is smaller than or equal to the version of "Sereal" you depend on.
The protocol specification and many other bits of documentation can be found in the github repository.
Right now, the specification is at <https://github.com/Sereal/Sereal/blob/master/sereal_spec.pod>, there
is a discussion of the design objectives in <https://github.com/Sereal/Sereal/blob/master/README.pod>,
and the output of our benchmarks can be seen at
<https://github.com/Sereal/Sereal/wiki/Sereal-Comparison-Graphs>.
EXPORTEDFUNCTIONS
It is recommended to use the object-oriented interface of "Sereal::Encoder" and "Sereal::Decoder" if you
care about performance. For detailed performance considerations, see Sereal::Performance.
You can optionally import five functions from "Sereal". "encode_sereal" is the same function as
Sereal::Encoder's "encode_sereal" function. "decode_sereal" and "looks_like_sereal" are the same as
Sereal::Decoder's functions of the same names. Finally, you can import the advanced functional interface
"sereal_encode_with_object" and "sereal_decode_with_object". Again, see Sereal::Performance for
information about those.
After loading the "Sereal" module, both "Sereal::Encoder" and "Sereal::Decoder" are guaranteed to be
loaded, so you can use their object-oriented interface.
get_sereal_encoder($OPTSHASH)
Returns a Sereal::Encoder with the given options. This encoder will be shared by other calls to this
function.
get_sereal_decoder($OPTSHASH)
Returns a Sereal::Decoder with the given options. This encoder will be shared by other calls to this
function.
clear_sereal_object_cache
Clears cache of objects created via get_sereal_encoder() and get_sereal_decoder(). Returns the number of
objects that were removed from the cache (the sum of both types).
write_sereal_file($FILENAME,$STRUCT,$APPEND,$OPTS)
Write a sereal packet to $FILENAME. See Sereal::Encoder::encode_to_file().
write_sereal($FILENAME,$STRUCT,$APPEND,$OPTS)
alias for write_sereal_file()read_sereal_file($FILENAME,$OPTS,$ROOT)
Read a sereal packet from a file. See Sereal::Decoder::decode_from_file().
read_sereal($FILENAME,$OPTS,$ROOT)
alias for read_sereal_file()