--- name: MIME::Base64 runtime: pp source: src/native/MIME/Base64/pp.rs --- ```{index} single: MIME::Base64; Perl module (pp runtime) ``` # MIME::Base64 Native implementation of MIME::Base64 Provides base64 encoding and decoding functions compatible with Perl's MIME::Base64 module. Since PetaPerl does not support XS, this module is implemented directly in Rust. # Synopsis use MIME::Base64; my $encoded = encode_base64("Hello, World!"); my $decoded = decode_base64($encoded); # Suppress line breaks my $oneline = encode_base64($data, ""); # URL-safe variant use MIME::Base64 'encode_base64url'; my $token = encode_base64url($data); # Functions ## encode_base64 Encode binary data to base64. An optional second argument specifies the end-of-line sequence inserted every 76 characters (default: "\n"). Pass "" to suppress line breaks. ```perl use MIME::Base64; my $encoded = encode_base64("Hello, World!"); my $oneline = encode_base64($data, ""); ``` ## decode_base64 Decode a base64-encoded string back to the original binary data. Whitespace in the input is silently ignored. ```perl use MIME::Base64; my $decoded = decode_base64("SGVsbG8sIFdvcmxkIQ=="); ``` ## encode_base64url Encode binary data using the URL-safe base64 alphabet (`-` and `_` instead of `+` and `/`), without padding or line breaks. ```perl use MIME::Base64 'encode_base64url'; my $token = encode_base64url($data); ``` ## decode_base64url Decode a URL-safe base64-encoded string back to binary data. ```perl use MIME::Base64 'decode_base64url'; my $data = decode_base64url($token); ``` ## encoded_base64_length Return the length of the string that encode_base64 would produce for the given data, without actually encoding it. ## decoded_base64_length Return the length of the data that decode_base64 would produce for the given encoded string, without actually decoding it. # Standard Base64 Alphabet Standard: `A-Z`, `a-z`, `0-9`, `+`, `/` with `=` padding URL-safe: `A-Z`, `a-z`, `0-9`, `-`, `_` without padding