GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Sereal(3) User Contributed Perl Documentation Sereal(3)

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

    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.

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

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.

Returns a Sereal::Encoder with the given options. This encoder will be shared by other calls to this function.

Returns a Sereal::Decoder with the given options. This encoder will be shared by other calls to this function.

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 a sereal packet to $FILENAME. See Sereal::Encoder::encode_to_file().

alias for write_sereal_file()

Read a sereal packet from a file. See Sereal::Decoder::decode_from_file().

alias for read_sereal_file()

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>

Steffen Mueller <smueller@cpan.org>

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.

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

Copyright (C) 2012, 2013, 2014 by Steffen Mueller
2020-08-03 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.