rust-tokio相关内容

如何在 Rust 中的未来和流之间进行选择?

我刚刚开始在 Rust 中试验 futures/tokio.我可以仅使用期货或仅使用流来做非常基本的事情.我想知道如何在未来和流之间进行选择. 如何将 tokio 文档中的玩具问题扩展为使用 tokio_timer::Timer 做一个定时的 HTTPS 请求? extern crate 期货;//v0.1(旧)extern crate native_tls;extern crate to ..
发布时间:2022-01-07 20:43:09 其他开发

如何使用 reqwest 执行并行异步 HTTP GET 请求?

异步示例很有用,但还是新手Rust 和 Tokio,我正在努力研究如何一次处理 N 个请求,使用来自向量的 URL,并为每个 URL 作为字符串创建响应 HTML 的迭代器. 这怎么可能? 解决方案 并发请求 从 reqwest 0.10 开始: use futures::{stream, StreamExt};//0.3.5使用 reqwest::Client;//0.10 ..
发布时间:2021-12-25 09:29:19 其他开发

tokio::net::TcpStream 如何实现 tokio::prelude::Stream?

在 tokio.rs 文档中,我们看到以下片段 //将socket流拆分成可读可写的部分让(读者,作者)= socket.split();//将字节从读取器复制到写入器让金额 = io::copy(reader, writer); 我假设 split 确实是 Stream::split,但我无法弄清楚这个特性如何应用于 TcpStream 鉴于流页面没有提到 TcpStream 和副反之. ..
发布时间:2021-09-09 19:04:43 其他开发

Rust 期货 - 将函数调整为 Sink

我有类似于 tokio 连接示例的内容 使用接受接收器的方法: pub async fn connect(地址:&SocketAddr,mut stdin: impl Stream>+取消固定,mut stdout: impl Sink+取消固定,) ->结果>{ 是否有一种标准/简单的方法可以使函数适应用于打印和/或转换的接收器? 例如.类似: c ..
发布时间:2021-07-13 21:27:24 其他开发

期货::选择有什么区别!和 tokio::select?

我正在使用 Tokio,我想从两个不同的 mpsc 队列接收请求.select! 似乎是要走的路,但我不确定 futures::select! 和 tokio::select! 之间有什么区别代码>.在哪种情况下,您应该使用一种而不是另一种? 解决方案 tokio::select! 是基于 futures::select! 的经验构建的,但改进了稍微调整一下以使其更符合人体工程学.例如.f ..
发布时间:2021-07-13 21:20:55 其他开发

从函数返回未来值

我最近开始学习 Rust,但我不确定如何从应该返回 Result 的函数中返回未来值.当我尝试仅返回响应变量并删除结果输出时,出现错误:不能在返回 std::string::String 的函数中使用 ? 运算符 #[tokio::main]异步 fn 下载()->结果{让 url = "https://query1.finance.yahoo.com/v8/finance/chart/TSLA ..
发布时间:2021-07-13 21:04:22 其他开发

如何在另一个 Tokio 运行时内创建 Tokio 运行时而不会出现错误“无法从运行时内启动运行时"?

我使用 rust_bert 来总结文本.我需要用 rust_bert::pipelines::summarization::SummarizationModel::new 设置一个模型,它从互联网上获取模型.它使用 tokio 以及(我认为)我的问题异步执行此操作我遇到的是我正在另一个 Tokio 运行时中运行 Tokio 运行时,如错误消息所示: 下载https://cdn.huggingfa ..
发布时间:2021-07-13 20:39:24 其他开发

为什么我收到错误“没有反应器正在运行,必须从 Tokio 运行时的上下文中调用"?即使我有#[tokio::main]?

我正在关注 mdns Rust 文档 并粘贴了示例代码,但它抛出以下错误: 线程“main"因“没有反应器在运行,必须从 Tokio 运行时的上下文中调用"而恐慌 这是我拥有的代码: use futures_util::{pin_mut, stream::StreamExt};使用 mdns::{Error, Record, RecordKind};使用 std::{net::IpAddr, ..
发布时间:2021-07-13 20:37:17 其他开发

为什么我会“对‘当前未在 Tokio 运行时上运行’感到恐慌"?当使用期货箱中的 block_on 时?

我正在使用有关他们的新板条箱的弹性搜索博客文章中的示例代码,但我无法让它按预期工作.线程恐慌,线程“main"因“当前未在 Tokio 运行时上运行"而恐慌.. 什么是 Tokio 运行时,我如何配置它以及为什么必须我? use futures::executor::block_on;异步 elastic_search_example() ->结果>{让 ..
发布时间:2021-07-13 20:30:36 其他开发

如何在特征中定义异步方法?

我有一个特性,我用它来抽象 tokio::net::TcpStream 和 tokio::net::UnixStream: ////TcpStream 和 UnixStream 的接口.特质 TryRead {//重叠名称使其难以使用fn do_try_read(&self, buf: &mut [u8]) ->结果;}impl TryRead for TcpStream {fn do_try_ ..
发布时间:2021-07-13 20:27:33 其他开发

使用tokio 0.1.x生成具有非静态生存期的任务

我有一个tokio核心,其主要任务是运行websocket(客户端).当我从服务器收到一些消息时,我想执行一个新任务来更新一些数据.下面是一个最小的失败示例: 使用tokio_core :: reactor :: {Core,Handle};使用Futures :: future :: Future;使用期货::期货;struct客户{处理:处理数据:使用,}暗示客户{fn update_dat ..
发布时间:2021-05-29 20:43:25 其他开发

使用hyper将块流异步写入文件

我正在尝试创建一个简单的函数,该函数使用hyper将远程文件下载到本地文件路径.我还需要文件写入也要异步(就我而言,我正在使用 tokio_fs ).这是代码: 在操场上查看 //省略了部分代码,有关完整源代码,请参见操场pub fn download_file(uri:乌里file_location:& Path,)->Box ..
发布时间:2021-05-09 20:28:00 其他开发

如何将任务添加到在另一个线程上运行的Tokio事件循环中?

文档指出: 返回的句柄可用于生成在此运行时上运行的任务,并可被克隆以允许将 Handle 移至其他线程. 这里是一个将事件循环放到一个线程中并让第二个线程生成任务的示例. 使用futures :: future;//0.3.5使用std :: {thread,time :: Duration};使用tokio :: {runtime :: Runtime,time};//0.2.21 ..
发布时间:2021-05-09 20:27:56 其他开发