1 个不稳定版本

0.1.0 2021年12月2日

#54 in #worker-thread

Download history 848/week @ 2024-04-14 756/week @ 2024-04-21 896/week @ 2024-04-28 1070/week @ 2024-05-05 1131/week @ 2024-05-12 701/week @ 2024-05-19 651/week @ 2024-05-26 698/week @ 2024-06-02 1018/week @ 2024-06-09 767/week @ 2024-06-16 729/week @ 2024-06-23 782/week @ 2024-06-30 565/week @ 2024-07-07 1022/week @ 2024-07-14 662/week @ 2024-07-21 1710/week @ 2024-07-28

3,991 每月下载次数
用于 tokio_env

Apache-2.0

3KB

tokio-env

tokio运行时便捷设置的配置库。

配置

所有配置均通过环境变量实现。以下为支持的变量:

  • TOKIO_ENABLE_ALL 是否启用所有类型的线程池。默认为 true
  • TOKIO_BLOCKING_THREADS 要使用的阻塞线程数量。
  • TOKIO_WORKER_THREADS 要使用的工作线程数量。
  • TOKIO_THREAD_STACK_SIZE 创建的线程的堆栈大小。
  • TOKIO_THREAD_NAME 创建的线程池的名称。

如果未提供环境变量,将回退到tokio的默认值,但 TOKIO_ENABLE_ALL 的默认值除外,它默认为 true

因此,空配置展开如下:

tokio::runtime::Builder::new_multi_thread()
    .enable_all()
    .map(|runtime| runtime.block_on(fun));

使用方法

此库的使用可能如下所示

fn main() {
    println!("Initializing tokio runtime...");
    let exit_code = tokio_env::start_with(run)
        .expect("Failed to start tokio runtime!");
    println!("Tokio runtime exited with code: {}", exit_code)
}

async fn run() -> i32 {
    println!("Program started!");
    // Your async logic here
    0
}

但是...为什么?

我厌倦了反复编写相同的样板代码,所以将其简化为一行代码!

依赖项

~1.5MB
~36K SLoC