#base64 #decode-base64 #codec #url #decode #encode #utf-8

no-std base64-url

Base64 encode, decode, escape and unescape for URL applications

32 stable releases

3.0.0 May 1, 2024
2.0.2 Dec 24, 2023
2.0.1 Nov 26, 2023
2.0.0 Mar 14, 2023
1.1.7 Nov 16, 2018

#54 in Encoding

Download history 51222/week @ 2024-08-13 54650/week @ 2024-08-20 51442/week @ 2024-08-27 57992/week @ 2024-09-03 53086/week @ 2024-09-10 49043/week @ 2024-09-17 53961/week @ 2024-09-24 54229/week @ 2024-10-01 55398/week @ 2024-10-08 62886/week @ 2024-10-15 66106/week @ 2024-10-22 58814/week @ 2024-10-29 59027/week @ 2024-11-05 64466/week @ 2024-11-12 58812/week @ 2024-11-19 33165/week @ 2024-11-26

227,064 downloads per month
Used in 171 crates (41 directly)

MIT license

21KB
347 lines

Base64 URL

CI

Base64 encode, decode, escape and unescape for URL applications.

Examples

Encode data to a Base64-URL string.

assert_eq!("SGVsbG8sIHdvcmxkIQ", base64_url::encode("Hello, world!"));

Decode a Base64-URL string to data.

assert_eq!(b"Hello, world!", base64_url::decode("SGVsbG8sIHdvcmxkIQ").unwrap().as_slice());

Escape a Base64 string to a Base64-URL string. The conversion is not concerning with Base64 decoding. You need to make sure the input string is a correct Base64 string by yourself.

assert_eq!("SGVsbG8sIHdvcmxkIQ", base64_url::escape("SGVsbG8sIHdvcmxkIQ=="));

Unescape a Base64-URL string to a Base64-URL string. The conversion is not concerning with Base64 decoding. You need to make sure the input string is a correct Base64-URL string by yourself.

assert_eq!("SGVsbG8sIHdvcmxkIQ==", base64_url::unescape("SGVsbG8sIHdvcmxkIQ"));

Besides, you can also use other encode_*, decode_*, escape_*, unescape_* associated functions to deal with more specific cases. For example,

let hash = &[1, 2, 3, 4, 5, 6, 7, 8, 9];
let mut url = String::from("https://example.com/?hash=");

assert_eq!("AQIDBAUGBwgJ", base64_url::encode_to_string(hash, &mut url));
assert_eq!("https://example.com/?hash=AQIDBAUGBwgJ", url);

No Std

Disable the default features to compile this crate without std.

[dependencies.base64-url]
version = "*"
default-features = false

Crates.io

https://crates.io/crates/base64-url

Documentation

https://docs.rs/base64-url

License

MIT

Dependencies

~235KB