rust-tokio相关内容
我刚刚开始在 Rust 中试验 futures/tokio.我可以仅使用期货或仅使用流来做非常基本的事情.我想知道如何在未来和流之间进行选择. 如何将 tokio 文档中的玩具问题扩展为使用 tokio_timer::Timer 做一个定时的 HTTPS 请求? extern crate 期货;//v0.1(旧)extern crate native_tls;extern crate to
..
我正在尝试使用 Tokio crate 在 Rust 中编写一个简单的 TCP 客户端.我的代码非常接近 这个例子 减去 TLS: extern crate 期货;extern crate tokio_core;extern crate tokio_io;使用期货::未来;使用 tokio_core::net::TcpStream;使用 tokio_core::reactor::Core;使用
..
我想构建一个程序来收集天气更新并将它们表示为流.我想在无限循环中调用 get_weather(),在 finish 和 start 之间有 60 秒的延迟. 简化版本如下所示: async fn get_weather() ->天气 {/* ... */}fn get_weather_stream() ->impl futures::Stream{环形 {tokio::timer::del
..
) ->impl Future, Error = hyper::Error>{让(零件,主体)= req.into_parts();匹配(parts.method,parts.uri.path()){(方法::POST, "/") =>{让整个身体 = body.concat2();让 resp = whole_body.map(|body| {let body = Body::from(form
..
异步示例很有用,但还是新手Rust 和 Tokio,我正在努力研究如何一次处理 N 个请求,使用来自向量的 URL,并为每个 URL 作为字符串创建响应 HTML 的迭代器. 这怎么可能? 解决方案 并发请求 从 reqwest 0.10 开始: use futures::{stream, StreamExt};//0.3.5使用 reqwest::Client;//0.10
..
在 tokio.rs 文档中,我们看到以下片段 //将socket流拆分成可读可写的部分让(读者,作者)= socket.split();//将字节从读取器复制到写入器让金额 = io::copy(reader, writer); 我假设 split 确实是 Stream::split,但我无法弄清楚这个特性如何应用于 TcpStream 鉴于流页面没有提到 TcpStream 和副反之.
..
我有类似于 tokio 连接示例的内容 使用接受接收器的方法: pub async fn connect(地址:&SocketAddr,mut stdin: impl Stream>+取消固定,mut stdout: impl Sink+取消固定,) ->结果>{ 是否有一种标准/简单的方法可以使函数适应用于打印和/或转换的接收器? 例如.类似: c
..
我正在使用 Tokio,我想从两个不同的 mpsc 队列接收请求.select! 似乎是要走的路,但我不确定 futures::select! 和 tokio::select! 之间有什么区别代码>.在哪种情况下,您应该使用一种而不是另一种? 解决方案 tokio::select! 是基于 futures::select! 的经验构建的,但改进了稍微调整一下以使其更符合人体工程学.例如.f
..
我最近开始学习 Rust,但我不确定如何从应该返回 Result 的函数中返回未来值.当我尝试仅返回响应变量并删除结果输出时,出现错误:不能在返回 std::string::String 的函数中使用 ? 运算符 #[tokio::main]异步 fn 下载()->结果{让 url = "https://query1.finance.yahoo.com/v8/finance/chart/TSLA
..
我使用 rust_bert 来总结文本.我需要用 rust_bert::pipelines::summarization::SummarizationModel::new 设置一个模型,它从互联网上获取模型.它使用 tokio 以及(我认为)我的问题异步执行此操作我遇到的是我正在另一个 Tokio 运行时中运行 Tokio 运行时,如错误消息所示: 下载https://cdn.huggingfa
..
我正在关注 mdns Rust 文档 并粘贴了示例代码,但它抛出以下错误: 线程“main"因“没有反应器在运行,必须从 Tokio 运行时的上下文中调用"而恐慌 这是我拥有的代码: use futures_util::{pin_mut, stream::StreamExt};使用 mdns::{Error, Record, RecordKind};使用 std::{net::IpAddr,
..
这个 MWE 展示了 tokio::spawn 在 for in 循环中的使用.注释代码 sleepy_futures.push(sleepy.sleep_n(2)); 工作正常,但不运行/轮询异步函数. 基本上,我想同时运行一堆异步函数.我很高兴更改 Sleepy 的实现或使用其他库/技术. pub struct Sleepy;impl 困了 {pub async fn sleep_n(
..
我正在使用有关他们的新板条箱的弹性搜索博客文章中的示例代码,但我无法让它按预期工作.线程恐慌,线程“main"因“当前未在 Tokio 运行时上运行"而恐慌.. 什么是 Tokio 运行时,我如何配置它以及为什么必须我? use futures::executor::block_on;异步 elastic_search_example() ->结果>{让
..
我有一个特性,我用它来抽象 tokio::net::TcpStream 和 tokio::net::UnixStream: ////TcpStream 和 UnixStream 的接口.特质 TryRead {//重叠名称使其难以使用fn do_try_read(&self, buf: &mut [u8]) ->结果;}impl TryRead for TcpStream {fn do_try_
..
我有一个tokio核心,其主要任务是运行websocket(客户端).当我从服务器收到一些消息时,我想执行一个新任务来更新一些数据.下面是一个最小的失败示例: 使用tokio_core :: reactor :: {Core,Handle};使用Futures :: future :: Future;使用期货::期货;struct客户{处理:处理数据:使用,}暗示客户{fn update_dat
..
我有使用相同的本地UdpSocket将数据发送到多个UDP端点的代码: 使用futures :: stream :: FuturesUnordered;使用futures :: StreamExt;使用std :: {未来::未来,净:: {Ipv4Addr,SocketAddr},针::针,任务:: {Context,Poll},};使用tokio :: net :: UdpSocket;#[
..
我正在尝试创建一个简单的函数,该函数使用hyper将远程文件下载到本地文件路径.我还需要文件写入也要异步(就我而言,我正在使用 tokio_fs ).这是代码: 在操场上查看 //省略了部分代码,有关完整源代码,请参见操场pub fn download_file(uri:乌里file_location:& Path,)->Box
..
文档指出: 返回的句柄可用于生成在此运行时上运行的任务,并可被克隆以允许将 Handle 移至其他线程. 这里是一个将事件循环放到一个线程中并让第二个线程生成任务的示例. 使用futures :: future;//0.3.5使用std :: {thread,time :: Duration};使用tokio :: {runtime :: Runtime,time};//0.2.21
..
我一直在尝试以下 相关的导入和显示的代码 使用std :: sync :: {Arc,Mutex};使用std :: thread;使用hyper :: rt :: {self,Future,Stream};使用hyper :: service :: service_fn;使用超级:: {正文,请求,响应,服务器,状态代码};pub struct ChallengeState;pub st
..
例如: 使用futures :: future :: Future;fn main(){let(stop_tokio,time_to_stop)= tokio :: sync :: oneshot :: channel ::();让处理程序= std :: thread :: spawn(|| {tokio :: run(time_to_stop,//.map_err(| _ |()))
..