=head1 NAME

Encode::Base2N - fast base64, base32, base16 encode/decode functions

=head1 SYNOPSIS

    use Encode::Base2N qw/encode_base64 decode_base64 encode_base64url encode_base64pad encode_base32 decode_base32 encode_base32low encode_base16 decode_base16 encode_base16low/;
    
    encode_base64("hello");           # => "aGVsbG8"
    encode_base64pad("hello");        # => "aGVsbG8="
    encode_base64('%$#@!~AM<K>?');    # => "JSQjQCF+QU08Sz4/"
    encode_base64url('%$#@!~AM<K>?'); # => "JSQjQCF-QU08Sz4_"
    decode_base64("aGVsbG8");         # => "hello"
    
    encode_base32("hello");    # => "NBSWY3DP"
    encode_base32low("hello"); # => "nbswy3dp"
    decode_base32("nbswy3dp"); # => "hello"
    
    encode_base16("hello");      # => "68656C6C6F"
    encode_base16low("hello");   # => "68656c6c6f"
    decode_base16("68656C6C6F"); # => "hello"



=head1 DESCRIPTION

Encode::Base2N supports Base64/32/16 encodings with or without url mode and padding. It's written in C++ and has also a C++ interface.



=head1 FUNCTIONS


=head3 Base64

=head4 encode_base64($input)

Does Base64 encoding without padding

=head4 encode_base64url($input)

Does Base64 encoding without padding using so-called 'url' mode ('-' instead of '+' and '_' instead of '/')

=head4 encode_base64pad($input)

 Does Base64 encoding with padding
 
=head4 decode_base64($encoded)
 
 Decodes Base64 (all possible variants)
 
 
=head3 Base32

=head4 encode_base32($input)
 
 Does Base32 encoding
 
=head4 encode_base32low($input)
 
 Does Base32 encoding using lowercase alphabet
 
=head4 decode_base32($encoded)
 
 Decodes Base32 (all possible variants)
 
 
 =head3 Base16

=head4 encode_base16($input)
 
 Does Base16 encoding
 
=head4 encode_base16low($input)
 
 Does Base16 encoding using lowercase alphabet
 
=head4 decode_base16($encoded)
 
 Decodes Base16 (all possible variants)
 
 
 
=head1 AUTHOR

Pronin Oleg <syber@cpan.org>, Crazy Panda LTD



=head1 LICENSE

You may distribute this code under the same terms as Perl itself.

=cut