#base64 #byte #mime #configurable #length #imap #standard

nightly lb64

具有完全可配置Base64类型的Base64库

3个版本

0.1.2 2018年11月25日
0.1.1 2018年11月24日
0.1.0 2018年11月24日

#29 in #imap

自定义许可证

58KB
708 代码行

lb64

Crate API


lb64是一个Rust库,用于对无符号整数和字节进行Base64编码和解码。

lb64致力于以最小的依赖和出色的文档实现panic和unsafe free。

lb64提供了使用常见的Base64配置的能力,如IMAPSTANDARDMIMEBase64url,并提供创建自己的Base64配置的实用工具。它还创建了一个完整的Base64类型和创建长度为n的随机Base64数字。

更多详细信息请参阅维基百科

注意:此crate仅适用于nightly版本。由于当前使用overflowing_pow进行无符号整数解码

原因

这个库是一个相当简单的实现,旨在正确学习如何编写Rust代码和文档,并且是我的第一个Rust项目。欢迎和学习目的接受pull requests。

用法

将其添加到您的Cargo.toml

[dependencies]
lb64 = "0.1.2"

将其添加到您的src/main.rssrc/lib.rs

extern crate lb64;

示例

extern crate lb64;

use lb64::Base64;
use lb64::config::{Config, MIME};

fn main() {
    let s: &str = "Hello!";
    let b64 = Base64::new_encode_bytes(s.as_bytes(), MIME);
    println!("{}", b64);
    let mut v: u128 = 0;
    match lb64.decode_to_unsigned() {
         Ok(value) => v = value,
         Err(e) => println!("{}", e),
    }
    let lb64_other = Base64::new_encode_unsigned(&v, MIME);
    if lb64_other == b64 {
         println!("They're equal!");
    }
    match String::from_utf8(lb64.decode_to_bytes()) {
         Ok(value) => println!("{}", value), // prints Hello
         Err(e) => println!("{}", e),
    }
 }

文档

许可证

lb64在GNU通用公共许可证第3版下分发

依赖项

~570–790KB
~11K SLoC