---
name: "AnyEvent::Serialize"
section: "3pm"
platform: "linux"
package: "libanyevent-serialize-perl"
version: "0.04-1.2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/AnyEvent::Serialize"
---

# AnyEvent::Serialize(3pm)

async serialize/deserialize function

## NAME

AnyEvent::Serialize - async serialize/deserialize function

## SYNOPSIS

```
  use AnyEvent::Serialize ':all';
  use AnyEvent::Serialize 'serialize';
  use AnyEvent::Serialize 'deserialize';
  use AnyEvent::Serialize ... block_size => 666;
  serialize $object, sub { ($str, $recursion_detected) = @_ };
  deserialize $string, sub { my ($object, $error, $tail) = @_ }
```

## DESCRIPTION

Sometimes You need to serialize/deserialize a lot of data. If You do it using Data::Dumper or **eval** it can take You too much time. This module splits (de)serialization process into fixed-size parts and does this work in non-blocking mode.

This module uses Data::StreamSerializer and Data::StreamDeserializer to serialize or deserialize Your data.

## EXPORT

### serialize($object, $result\_callback)

Serializes Your object. When serialization is done it will call **$result\_callback**. This callback receives two arguments:

- result string

  - flag if recursion is detected

  ### deserialize($str, $result\_callback)

Deserializes Your string. When deserialization is done or an error is detected it will call **$result\_callback**. This callback receives three arguments:

- deserialized object

  - error string (if an error was occured)

  - undeserialized string tail

  ## BREAKING

You can break serialization/deserialization process if You save value that is returned by functions serialize/deserialize. They return guards if they are called in non-void context.

## SEE ALSO

Data::StreamSerializer, Data::StreamDeserializer.

## AUTHOR

Dmitry E. Oboukhov, \<unera@debian.org\>

## COPYRIGHT AND LICENSE

Copyright (C) 2011 by Dmitry E. Oboukhov

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.
