Tokio概述

Tokio概述

官方介绍

来自 tokio 官网首页 的介绍:

Build reliable network applications without compromising speed.

在不影响速度的情况下建立可靠的网络应用。

Tokio is an asynchronous runtime for the Rust programming language. It provides the building blocks needed for writing network applications. It gives the flexibility to target a wide range of systems, from large servers with dozens of cores to small embedded devices.

Tokio是用于Rust编程语言的一个异步运行时。它提供了编写网络应用所需的构建块。它提供了针对各种系统的灵活性,从有几十个内核的大型服务器到小型嵌入式设备。

声称的主要优势:

  • Reliable/可靠:Tokio 的 API 是内存安全和线程安全的,并且是抗误操作的。这有助于防止常见的错误,如无界队列、缓冲区溢出和任务饿死。
  • Fast/快速:构建在Rust之上,Tokio提供了一个多线程的、抢占式的调度器。应用程序可以每秒处理数十万个请求,而且开销很小。
  • Easy/简单:async/await 减少了编写异步应用程序的复杂性。与Tokio的实用工具和充满活力的生态系统相配,编写应用程序是一件轻而易举的事。
  • Flexible/弹性:服务器应用程序的需求与嵌入式设备的需求不同。尽管Tokio带有默认值可以开箱即用,但它也提供了所需的旋钮,以便对不同的情况进行微调。

技术栈

应用程序不是在真空中建立的。Tokio 技术栈包括交货到生产所需的一切。

  • Runtime: Tokio运行时包括I/O、定时器、文件系统、同步和调度设施,是异步应用的基础。
  • Hyper: Hyper是一个HTTP客户端和服务器库,同时支持HTTP 1和2协议。
  • Tonic: 一个无固定规则(boilerplate-free)的gRPC客户端和服务器库。通过网络发布和使用API的最简单方法。
  • Tower:用于建立可靠的客户端和服务器的模块化组件。包括重试、负载平衡、过滤、请求限制设施等。
  • Mio:在操作系统的事件化I/O API之上的最小的可移植API。
  • Tracing: 对应用程序和库的统一的洞察力。提供结构化的、基于事件的数据收集和记录。
  • Bytes:在核心部分,网络应用程序操纵字节流。Bytes提供了一套丰富的实用程序来操作字节数组。