#hex #shell #pretty #cfg #v

nu-pretty-hex

Pretty hex dump of bytes slice in the common style

41 breaking releases

0.87.1 Nov 20, 2023
0.86.0 Oct 17, 2023
0.83.1 Jul 30, 2023
0.77.1 Mar 17, 2023
0.34.0 Jul 13, 2021

#19 in Configuration

Download history 716/week @ 2023-08-15 1641/week @ 2023-08-22 1469/week @ 2023-08-29 1242/week @ 2023-09-05 1175/week @ 2023-09-12 1772/week @ 2023-09-19 1135/week @ 2023-09-26 1018/week @ 2023-10-03 1188/week @ 2023-10-10 2007/week @ 2023-10-17 1378/week @ 2023-10-24 1315/week @ 2023-10-31 1409/week @ 2023-11-07 2148/week @ 2023-11-14 2108/week @ 2023-11-21 1597/week @ 2023-11-28

7,409 downloads per month
Used in 14 crates (6 directly)

MIT license

15KB
243 lines

nu-pretty-hex

An update of prett-hex to make it prettier

crates.io docs.rs

A Rust library providing pretty hex dump.

A simple_hex() way renders one-line hex dump, a pretty_hex() way renders columned multi-line hex dump with addressing and ASCII representation. A config_hex() way renders hex dump in specified format.

Inspiration

Hexed
Hexyl
Pretty-hex

Example of simple_hex()

use pretty_hex::*;

let v = vec![222, 173, 190, 239, 202, 254, 32, 24];
assert_eq!(simple_hex(&v), format!("{}", v.hex_dump()));

println!("{}", v.hex_dump());

Output:

de ad be ef  ca fe 20 18

Example of pretty_hex()

use pretty_hex::*;

let v: &[u8] = &random::<[u8;30]>();
assert_eq!(pretty_hex(&v), format!("{:?}", v.hex_dump()));

println!("{:?}", v.hex_dump());

Output:

Length: 30 (0x1e) bytes
0000:   6b 4e 1a c3  af 03 d2 1e  7e 73 ba c8  bd 84 0f 83   kN......~s......
0010:   89 d5 cf 90  23 67 4b 48  db b1 bc 35  bf ee         ....#gKH...5..

Example of config_hex()

use pretty_hex::*;

let cfg = HexConfig {title: false, width: 8, group: 0, ..HexConfig::default() };

let v = &include_bytes!("data");
assert_eq!(config_hex(&v, cfg), format!("{:?}", v.hex_conf(cfg)));

println!("{:?}", v.hex_conf(cfg));

Output:

0000:   6b 4e 1a c3 af 03 d2 1e   kN......
0008:   7e 73 ba c8 bd 84 0f 83   ~s......
0010:   89 d5 cf 90 23 67 4b 48   ....#gKH
0018:   db b1 bc 35 bf ee         ...5..

Inspired by haskell's pretty-hex.

Dependencies

~0.1–8MB
~48K SLoC