URI::Encode::XS(3)

πŸ“¦ version 0.11, in alpine 3.24

πŸ’– NAME πŸ’–

okay so bestie, welcome to URI::Encode::XS(3) from the User Contributed Perl Documentation section β€” it’s URI::Encode::XS, a Perl URI encoder/decoder using C. literally C under the hood, Perl in your hands ✨


✨ SYNOPSIS ✨

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

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

# utf8 friendly
my $encoded = uri_encode_utf8($data);
my $decoded = uri_decode_utf8($encoded);

🌸 DESCRIPTION 🌸

This is a Perl URI encoder/decoder written in XS, based on RFC3986 <https://tools.ietf.org/html/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.10, the bench script shows it to be significantly faster than URI::Escape:

                 Rate      escape encode_utf8      encode
escape       140114/s          --        -94%        -98%
encode_utf8 2255100/s       1509%          --        -71%
encode      7735189/s       5421%        243%          --

                 Rate    unescape decode_utf8      decode
unescape     188714/s          --        -95%        -97%
decode_utf8 3744638/s       1884%          --        -50%
decode      7429263/s       3837%         98%          --

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 <https://metacpan.org/pod/URI::XSEscape>.


πŸŽ€ INSTALLATION πŸŽ€

bestie, install it like this:

$ 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 🌈

the repo lives at <https://github.com/dnmfarrell/URI-Encode-XS> β€” go vibe with it, bestie πŸ¦‹


πŸ’œ LICENSE πŸ’œ

See LICENSE.


⭐ AUTHOR ⭐

Β© 2016 David Farrell


mwah πŸ’‹ β€” page source/version: perl v5.42.2, dated 2026-02-15, for URI::Encode::XS(3). byeee, bestie 🫢✨

πŸ“¦ where this page comes from