Stefan G. > BSON-0.11 > BSON

Download:
BSON-0.11.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.11   Source  

NAME ^

BSON - Pure Perl implementation of MongoDB's BSON serialization

VERSION ^

Version 0.11

SYNOPSIS ^

    use BSON qw/encode decode/;

    my $document = {
        _id      => BSON::ObjectId->new,
        date     => BSON::Time->new,
        name     => 'James Bond',
        age      => 45,
        amount   => 24587.45,
        badass   => BSON::Bool->true,
        password => BSON::String->new('12345')
    };

    my $bson = encode( $document );
    my $doc2 = decode( $bson, %options );

DESCRIPTION ^

This module implements BSON serialization and deserialization as described at http://bsonspec.org. BSON is the primary data representation for MongoDB.

EXPORT ^

The module does not export anything. You have to request encode and/or decode manually.

    use BSON qw/encode decode/;

SUBROUTINES ^

encode

Takes a hashref and returns a BSON string.

    my $bson = encode({ bar => 'foo' });

decode

Takes a BSON string and returns a hashref.

    my $hash = decode( $bson, ixhash => 1 );

The options after $bson are optional and they can be any of the following:

options

  1. ixhash => 1|0

    If set to 1 decode will return a Tie::IxHash ordered hash. Otherwise, a regular unordered hash will be returned. Turning this option on entails a significant speed penalty as Tie::IxHash is slower than a regular Perl hash. The default value for this option is 0.

THREADS ^

This module is thread safe.

LIMITATION ^

MongoDB sets a limit for any BSON record to 16MB. This module does not enforce this limit and you can use it to encode and decode structures as large as you please.

CAVEATS ^

BSON uses zero terminated strings and Perl allows the \0 character to be anywhere in a string. If you expect your strings to contain \0 characters, use BSON::Binary instead.

SEE ALSO ^

BSON::String, BSON::Time, BSON::ObjectId, BSON::Code, BSON::Binary, BSON::Bool, BSON::MinKey, BSON::MaxKey, BSON::Timestamp, Tie::IxHash, MongoDB

AUTHOR ^

minimalist, <minimalist at lavabit.com>

CONTRIBUTORS ^

Oleg Kostyuk <cub@cpan.org>

BUGS ^

Bug reports and patches are welcome. Reports which include a failing Test::More style test are helpful and will receive priority.

DEVELOPMENT ^

The source code of this module is available on GitHub: https://github.com/naturalist/Perl-BSON

LICENSE AND COPYRIGHT ^

Copyright 2011 minimalist.

This program is free software; you can redistribute it and/or modify it under the terms as perl itself.

syntax highlighting: