# NAME Starch::Plugin::Sereal - Use Sereal for cloning and diffing Starch data structures. # SYNOPSIS my $starch = Starch->new( plugins => ['::Sereal'], ); # DESCRIPTION By default ["clone\_data" in Starch::State](https://metacpan.org/pod/Starch::State#clone_data) and ["is\_data\_diff" in Starch::State](https://metacpan.org/pod/Starch::State#is_data_diff) use [Storable](https://metacpan.org/pod/Storable) to do the heavy lifting. This module replaces those two methods with ones that use [Sereal](https://metacpan.org/pod/Sereal) which can be leaps and bounds faster than Storable. In this author's testing `is_data_diff` will be about 3x faster with Sereal and `clone_data` will be about 1.5x faster with Sereal. # MANAGER ATTRIBUTES These attributes are added to the [Starch::Manager](https://metacpan.org/pod/Starch::Manager) class. ## sereal\_encoder An instance of [Sereal::Encoder](https://metacpan.org/pod/Sereal::Encoder). ## sereal\_decoder An instance of [Sereal::Decoder](https://metacpan.org/pod/Sereal::Decoder). ## canonical\_sereal\_encoder An instance of [Sereal::Encoder](https://metacpan.org/pod/Sereal::Encoder) with the `canonical` option set. # MODIFIED MANAGER METHODS These methods are added to the [Starch::Manager](https://metacpan.org/pod/Starch::Manager) class. ## clone\_data Modified to use ["sereal\_encoder"](#sereal_encoder) and ["sereal\_decoder"](#sereal_decoder) to clone a data structure. ## is\_data\_diff Modified to use ["canonical\_sereal\_encoder"](#canonical_sereal_encoder) to encode the two data structures. # SUPPORT Please submit bugs and feature requests to the Starch-Plugin-Sereal GitHub issue tracker: [https://github.com/bluefeet/Starch-Plugin-Sereal/issues](https://github.com/bluefeet/Starch-Plugin-Sereal/issues) # AUTHORS Aran Clary Deltac # ACKNOWLEDGEMENTS Thanks to [ZipRecruiter](https://www.ziprecruiter.com/) for encouraging their employees to contribute back to the open source ecosystem. Without their dedication to quality software development this distribution would not exist. # LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.