使用在Rust中创建一个基本的Web服务并使用Rustup将Rust作为文档,我已经设法使用Rust成功编译64位静态二进制文件:
rustup target add x86_64-unknown-linux-musl
cargo build --target=x86_64-unknown-linux-musl
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到如何构建32位静态二进制文件.
我确实i686-unknown-linux-musl在运行时找到了一个目标rustc --print target-list,但发现它在运行时不可用rustup target list.
我错过了什么或者不可能吗?
我是 Rust 的初学者。
我有一个长时间运行的 IO 绑定进程,我想通过 REST API 生成和监视该进程。我按照本教程选择了Iron。监控意味着了解其进展和最终结果。
当我生成它时,我给它一个 id 并将该 id 映射到我可以获取以获取进度的资源。我不必精确地描述进展情况;我可以报告 5 秒前的进度。
我的第一次尝试是建立一个通道,通过该通道发送进度请求并接收状态。我被困在哪里存储接收器,因为根据我的理解,它只属于一个线程。我想将其放在请求的上下文中,但这不起作用,因为有不同的线程处理后续请求。
在 Rust 中执行此操作的惯用方法是什么?
我有一个示例项目。
稍后编辑:
这是一个独立的示例,它遵循示例原则作为答案,即每个线程更新其进度的映射:
extern crate iron;
extern crate router;
extern crate rustc_serialize;
use iron::prelude::*;
use iron::status;
use router::Router;
use rustc_serialize::json;
use std::io::Read;
use std::sync::{Mutex, Arc};
use std::thread;
use std::time::Duration;
use std::collections::HashMap;
#[derive(Debug, Clone, RustcEncodable, RustcDecodable)]
pub struct Status {
pub progress: u64,
pub context: String
}
#[derive(RustcEncodable, RustcDecodable)]
struct StartTask {
id: u64
} …Run Code Online (Sandbox Code Playgroud) rust ×2