#random #rand #generator #api-bindings #api

randomorg

random.org客户端库。随机性来自大气噪声,对于许多目的而言,它比计算机程序中通常使用的伪随机数算法要好。

10个版本 (5个稳定版)

1.0.4 2021年2月10日
1.0.3 2020年2月23日
1.0.2 2020年1月21日
1.0.1 2019年9月23日
0.3.0 2017年6月27日

#1142 in 加密学

每月24次下载
用于 jam_theme_picker

MIT 许可证

67KB
1K SLoC

random.org

Build status Crates Docs MIT licensed

一个https://random.org客户端库。随机性来自大气噪声,对于许多目的而言,它比计算机程序中通常使用的伪随机数算法要好。

状态

所有功能已实现。请注意,random.org服务API处于开发阶段的beta版本,但库将尝试保持最新。

文档

这份文档可能有助于您使用此库。

实现

  • 不可变接口,无需同步,线程安全(SyncSend)。
  • 没有不安全的代码块。
  • 使用reqwest crate进行请求。
  • 使用chrono处理日期。
  • 使用serde进行序列化和反序列化。

功能

用法

首先创建Random实例,然后执行所需的操作。

extern crate randomorg;

fn main() {
    use randomorg::Random;
    let r = Random::new("API KEY HERE");
    // 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);
}

使用rand功能,您还可以这样使用它

extern crate randomorg;

fn main() {
    use rand_core::RngCore;
    use randomorg::Random;
   
    let mut random = Random::new("API KEY HERE");
    let mut key = [0u8; 16];
    random.fill_bytes(&mut key);
    let random_u64 = random.next_u64();
}

许可证

此项目受MIT许可证许可。

依赖关系

~5–20MB
~266K SLoC