小编And*_*san的帖子

如何使用Rust和rustup构建32位静态二进制文件?

使用在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

8
推荐指数
1
解决办法
2363
查看次数

如何在 Rust 中实现一个长时间运行的进程并通过 Rest api 获得进展?

我是 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

3
推荐指数
1
解决办法
1558
查看次数

标签 统计

rust ×2