dwww Home | Manual pages | Find package

Sereal(3pm)           User Contributed Perl Documentation          Sereal(3pm)

NAME
       Sereal - Fast, compact, powerful binary (de-)serialization

SYNOPSIS
           use Sereal qw(
               get_sereal_decoder
               get_sereal_encoder
               clear_sereal_object_cache

               encode_sereal
               decode_sereal

               read_sereal
               read_sereal_file
               write_sereal
               write_sereal_file

               looks_like_sereal
               scalar_looks_like_sereal

               sereal_encode_with_object
               sereal_decode_with_object
               decode_sereal_with_header_data

               sereal_decode_with_header_with_object
               sereal_decode_only_header_with_object
               sereal_decode_only_header_with_offset_with_object
               sereal_decode_with_header_and_offset_with_object
               sereal_decode_with_offset_with_object

               SRL_UNCOMPRESSED
               SRL_SNAPPY
               SRL_ZLIB
               SRL_ZSTD
           );
           # Note: For performance reasons, you should prefer the OO interface,
           #       or sereal_(en|de)code_with_object over the stateless
           #       encode_sereal/decode_sereal functions.
           #       See the Sereal::Performance documentation for details.

DESCRIPTION
       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>.

   EXPORTED FUNCTIONS
       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()

BUGS, CONTACT AND SUPPORT
       For reporting bugs, please use the github bug tracker at
       <http://github.com/Sereal/Sereal/issues>.

       For support and discussion of Sereal, there are two Google Groups:

       Announcements around Sereal (extremely low volume):
       <https://groups.google.com/forum/?fromgroups#!forum/sereal-announce>

       Sereal development list:
       <https://groups.google.com/forum/?fromgroups#!forum/sereal-dev>

AUTHOR
       Steffen Mueller <smueller@cpan.org>

ACKNOWLEDGMENT
       This module was originally developed for Booking.com.  With approval
       from Booking.com, this module was generalized and published on CPAN,
       for which the authors would like to express their gratitude.

LICENSE
       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

COPYRIGHT AND LICENSE
       Copyright (C) 2012, 2013, 2014 by Steffen Mueller

perl v5.36.0                      2023-02-10                       Sereal(3pm)

Generated by dwww version 1.15 on Mon Jun 24 15:13:02 CEST 2024.