| Crates.io | base16 |
| lib.rs | base16 |
| version | 0.2.1 |
| created_at | 2018-05-02 20:29:45.042579+00 |
| updated_at | 2019-07-08 08:30:17.419499+00 |
| description | base16 (hex) encoding and decoding |
| homepage | |
| repository | https://github.com/thomcc/rust-base16 |
| max_upload_size | |
| id | 63476 |
| size | 53,766 |
This is a base16 (e.g. hexadecimal) encoding and decoding library which was initially written with an emphasis on performance.
This was before Rust added SIMD, and I haven't gotten around to adding that. It's still probably the fastest non-SIMD impl.
Add base16 = "0.2" to Cargo.toml, then:
fn main() {
let original_msg = "Foobar";
let hex_string = base16::encode_lower(original_msg);
assert_eq!(hex_string, "466f6f626172");
let decoded = base16::decode(&hex_string).unwrap();
assert_eq!(String::from_utf8(decoded).unwrap(), original_msg);
}
More usage examples in the docs.
no_std UsageThis crate supports use in no_std configurations using the following knobs.
"alloc" feature, which is on by default, adds a number of helpful functions
that require use of the alloc crate,
but not the rest of std. This is no_std compatible.
alloc feature."std" feature, which is on by default, enables the "alloc" feature, and
additionally makes base16::DecodeError implement the std::error::Error trait.
(Frustratingly, this trait is in std and not in core or alloc...)For clarity, this means that by default, we assume you are okay with use of std.
If you'd like to disable the use of std, but are in an environment where you have
an allocator (e.g. use of the alloc
crate is acceptable), then you require this as alloc-only as follows:
[dependencies]
# Turn of use of `std` (but leave use of `alloc`).
base16 = { version = "0.2", default-features = false, features = ["alloc"] }
If you just want the core base16 functionality and none of the helpers, then
you should turn off all features.
[dependencies]
# Turn of use of `std` and `alloc`.
base16 = { version = "0.2", default-features = false }
Both of these configurations are no_std compatible.
Public domain, as explained here