NAME
    BSON - Pure Perl implementation of MongoDB's BSON serialization

VERSION
    Version 0.02

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
        };

        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.

SEE ALSO
    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>"

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.

