# random.org
[](https://travis-ci.org/vityafx/randomorg)
[](https://crates.io/crates/randomorg)
[](https://docs.rs/randomorg)
[](./LICENSE)
A https://random.org client library. The randomness comes from atmospheric noise, which
for many purposes is better than the pseudo-random number algorithms typically used in computer
programs.
## Status
Everything is implemented. Note, that the `random.org` service API is at beta stage of development,
however the library will try to be up-to-date.
## The documentation
The [documentation](https://docs.rs/randomorg) which may help you using this library.
## Implementation
- Immutable interface, no need to synchronize, thread-safe (`Sync` and `Send`).
- No unsafe blocks
- `reqwest` crate is used for performing requests
- `chrono` for dates
- `serde` for serialization and deserialization
## Usage
Start by creating `Random` instance and perform needed operations after.
```rust,no_run
extern crate randomorg;
fn main() {
use randomorg::Random;
let r = Random::new("API KEY HERE").unwrap();
// A method-call way:
println!("Result: {:?}", r.generate_integers(-100, 100, 15, true));
// A lazy request builder way:
let random_data = r.request_integers().min(0).max(100).limit(5).collect::<Vec<i32>>();
println!("Random integers: {:?}", random_data);
}
```
## License
This project is
[licensed under the MIT license](https://github.com/vityafx/randomorg/blob/master/LICENSE).