Base64 Stream
====================
[![Build Status](https://travis-ci.org/magiclen/base64-stream.svg?branch=master)](https://travis-ci.org/magiclen/base64-stream)
[![Build status](https://ci.appveyor.com/api/projects/status/g0vhvr0whax0xckr/branch/master?svg=true)](https://ci.appveyor.com/project/magiclen/base64-stream/branch/master)
To encode/decode large data with the standard Base64 encoding.
## Examples
### Encode
#### ToBase64Reader
```rust
extern crate base64_stream;
use std::io::Cursor;
use std::io::Read;
use base64_stream::ToBase64Reader;
let test_data = b"Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.".to_vec();
let mut reader = ToBase64Reader::new(Cursor::new(test_data));
let mut base64 = [0u8; 4096];
let c = reader.read(&mut base64).unwrap();
assert_eq!(b"SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==".to_vec(), base64[..c].to_vec());
```
### Decode
#### FromBase64Reader
```rust
extern crate base64_stream;
use std::io::Cursor;
use std::io::Read;
use base64_stream::FromBase64Reader;
let base64 = b"SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==".to_vec();
let mut reader = FromBase64Reader::new(Cursor::new(base64));
let mut test_data = [0u8; 4096];
let c = reader.read(&mut test_data).unwrap();
assert_eq!(b"Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.".to_vec(), test_data[..c].to_vec());
```
## Todo
1. Encode
1. ToBase64Writer
1. Decode
1. FromBase64Writer
## Crates.io
https://crates.io/crates/base64-stream
## Documentation
https://docs.rs/base64-stream
## License
[MIT](LICENSE)