base64
use base64::engine::{general_purpose, Engine};
let original = "Hello?_d";
let b64 = general_purpose::STANDARD.encode(original);
let decoded = general_purpose::STANDARD.decode(b64)?;
let decoded = String::from_utf8(decoded)?;
println!("{decoded:<20} (Base64 decoded)");
The base64 crate is the de facto standard crate for Base64 and Base64 URL encoding and decoding. Below are the basic usage guidelines, along with a video discussing some production coding considerations and providing code examples.
use base64::engine::{general_purpose, Engine};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let original = "Hello?_d";
// -- Base64
let b64 = general_purpose::STANDARD.encode(original);
println!("{b64:<20} (Base64 encoded)");
let decoded = general_purpose::STANDARD.decode(b64)?;
let decoded = String::from_utf8(decoded)?;
println!("{decoded:<20} (Base64 decoded)");
// -- Base64 URL
let b64u = general_purpose::URL_SAFE_NO_PAD.encode(original);
println!("{b64u:<20} (Base64 URL encoded)");
let decoded = general_purpose::URL_SAFE_NO_PAD.decode(b64u)?;
let decoded = String::from_utf8(decoded)?;
println!("{decoded:<20} (Base64 URL decoded)");
Ok(())
}