NAME

URI::Encode::XS - a Perl URI encoder/decoder using C

SYNOPSIS

use URI::Encode::XS qw/uri_encode uri_decode/;

my $encoded = uri_encode($data);
my $decoded = uri_decode($encoded);

DESCRIPTION

This is a Perl URI encoder/decoder written in XS based on RFC3986. This module always encodes characters that are not unreserved. When decoding, invalid escape sequences are preserved, e.g:

uri_decode("foo%20bar%a/"); # foo bar%a/
uri_decode("foo%20bar%a");  # foo bar%a
uri_decode("foo%20bar%");   # foo bar%

As of version 0.09, the bench script shows it to be significantly faster than URI::Escape:

            Rate escape encode
escape  144165/s     --   -98%
encode 8239785/s  5616%     --
              Rate unescape   decode
unescape  196870/s       --     -97%
decode   6051468/s    2974%       --

However this is just one string - the fewer encoded/decoded characters are in the string, the closer the benchmark is likely to be (see bench for details of the benchmark). Different hardware will yield different results.

Another fast encoder/decoder which supports custom escape lists, is URI::XSEscape.

INSTALLATION

$ cpan URI::Encode::XS

Or

$ git clone https://github.com/dnmfarrell/URI-Encode-XS
$ cd URI-Encode-XS
$ perl Makefile.PL
$ make
$ make test
$ make install

CONTRIBUTORS

SEE ALSO

REPOSITORY

https://github.com/dnmfarrell/URI-Encode-XS

LICENSE

See LICENSE

AUTHOR

© 2016 David Farrell