1This crate provides convenience methods for encoding and decoding
2numbers in either big-endian or little-endian order.
3
4[![Build status](https://api.travis-ci.org/BurntSushi/byteorder.svg)](https://travis-ci.org/BurntSushi/byteorder)
5[![](http://meritbadge.herokuapp.com/byteorder)](https://crates.io/crates/byteorder)
6
7Dual-licensed under MIT or the [UNLICENSE](http://unlicense.org).
8
9
10### Documentation
11
12https://docs.rs/byteorder
13
14
15### Installation
16
17This crate works with Cargo and is on
18[crates.io](https://crates.io/crates/byteorder). Add it to your `Cargo.toml`
19like so:
20
21```toml
22[dependencies]
23byteorder = "1"
24```
25
26If you want to augment existing `Read` and `Write` traits, then import the
27extension methods like so:
28
29```rust
30extern crate byteorder;
31
32use byteorder::{ReadBytesExt, WriteBytesExt, BigEndian, LittleEndian};
33```
34
35For example:
36
37```rust
38use std::io::Cursor;
39use byteorder::{BigEndian, ReadBytesExt};
40
41let mut rdr = Cursor::new(vec![2, 5, 3, 0]);
42// Note that we use type parameters to indicate which kind of byte order
43// we want!
44assert_eq!(517, rdr.read_u16::<BigEndian>().unwrap());
45assert_eq!(768, rdr.read_u16::<BigEndian>().unwrap());
46```
47
48### `no_std` crates
49
50This crate has a feature, `std`, that is enabled by default. To use this crate
51in a `no_std` context, add the following to your `Cargo.toml`:
52
53```toml
54[dependencies]
55byteorder = { version = "1", default-features = false }
56```
57
58
59### Alternatives
60
61Note that as of Rust 1.32, the standard numeric types provide built-in methods
62like `to_le_bytes` and `from_le_bytes`, which support some of the same use
63cases.
64