Crates.io | bytebuffer |
lib.rs | bytebuffer |
version | 2.3.0 |
source | src |
created_at | 2015-09-05 21:47:39.752274 |
updated_at | 2024-07-29 22:29:34.385448 |
description | A bytebuffer for networking and binary protocols |
homepage | https://github.com/terahlunah/bytebuffer |
repository | https://github.com/terahlunah/bytebuffer |
max_upload_size | |
id | 2991 |
size | 85,227 |
bytebuffer
This crate provides an easy to use api to read/write data from/to a bunch of bytes.
[dependencies]
bytebuffer = "2.3.0"
use bytebuffer::ByteBuffer;
// Writing
let mut buffer = ByteBuffer::new();
buffer.write_bytes(&vec![0x1, 0xFF, 0x45]);
buffer.write_u8(1);
buffer.write_i8(1);
buffer.write_u16(1);
buffer.write_i16(1);
buffer.write_u32(1);
buffer.write_i32(1);
buffer.write_u64(1);
buffer.write_i64(1);
buffer.write_u128(1);
buffer.write_i128(1);
buffer.write_f32(0.1);
buffer.write_f64(0.1);
buffer.write_string("Hello");
buffer.write_bit(true);
buffer.write_bits(4, 3);
buffer.flush_bits();
let data = buffer.into_vec();
// Reading
let mut reader = ByteBuffer::from(data);
// or
let mut reader = ByteReader::from(&data);
let _ = reader.read_bytes(3);
let _ = reader.read_u8();
let _ = reader.read_i8();
let _ = reader.read_u16();
let _ = reader.read_i16();
let _ = reader.read_u32();
let _ = reader.read_i32();
let _ = reader.read_u64();
let _ = reader.read_i64();
let _ = reader.read_f32();
let _ = reader.read_f64();
let _ = reader.read_u128();
let _ = reader.read_i128();
let _ = reader.read_string();
let _ = reader.read_bit();
let _ = reader.read_bits(3);
Also support half 16 bits floats with
features = ["half"]
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.