#tokio #async #run-time #variables #env-var #thread-pool #environmental

tokio_env

一个通过环境变量配置tokio运行时的实用库

3个不稳定版本

0.1.0 2021年12月2日
0.0.2 2021年10月4日
0.0.1 2021年10月4日

配置中排名第626

Download history 1031/week @ 2024-05-03 1247/week @ 2024-05-10 797/week @ 2024-05-17 532/week @ 2024-05-24 868/week @ 2024-05-31 593/week @ 2024-06-07 1210/week @ 2024-06-14 638/week @ 2024-06-21 887/week @ 2024-06-28 762/week @ 2024-07-05 792/week @ 2024-07-12 918/week @ 2024-07-19 1355/week @ 2024-07-26 1717/week @ 2024-08-02 1442/week @ 2024-08-09 952/week @ 2024-08-16

每月下载量5,572

Apache-2.0

7KB

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
}

但是...为什么?

我厌倦了反复编写相同的样板代码,所以我将其变成了单行代码!

依赖关系

~3–4.5MB
~82K SLoC