Crates.io | base16 |
lib.rs | base16 |
version | 0.2.1 |
source | src |
created_at | 2018-05-02 20:29:45.042579 |
updated_at | 2019-07-08 08:30:17.419499 |
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