#活塞 #执行引擎 #代码 #API 绑定 #emkc

piston_rs

为 Piston 代码执行引擎提供的异步包装器

10 个不稳定版本 (3 个破坏性版本)

0.4.3 2022 年 6 月 30 日
0.4.2 2021 年 12 月 31 日
0.3.0 2021 年 12 月 9 日
0.2.3 2021 年 11 月 30 日
0.1.0 2021 年 11 月 27 日

#17 in #执行引擎

MIT 许可证

44KB
521

piston_rs

Crate Docs Build

Piston 代码执行引擎提供的异步包装器。

为何选择 piston_rs

piston_rs 旨在使与 Piston 的交互变得有趣且简单。您的主要工具是 ClientExecutor 结构体。

Executor 结构体包含您要运行的源代码和其他元数据,然后通过 Client 发送到 Piston。

piston_rs 需要 Rust 版本 1.46.0 或更高。

入门指南

有关更多详细信息,请参阅 文档

将 piston_rs 添加到您的项目中

# Cargo.toml

[dependencies]
piston_rs = "^0.4"

向 Piston 发送请求

// main.rs

#[tokio::main]
async fn main() {
    let client = piston_rs::Client::new();
    let executor = piston_rs::Executor::new()
        .set_language("rust")
        .set_version("*")
        .add_file(
            piston_rs::File::default()
                .set_name("main.rs")
                .set_content("fn main() { println!(\"42\"); }")
        );

    match client.execute(&executor).await {
        Ok(response) => {
            println!("Language: {}", response.language);
            println!("Version: {}", response.version);

            if let Some(c) = response.compile {
                println!("Compilation: {}", c.output);
            }

            println!("Output: {}", response.run.output);
        }
        Err(e) => {
            println!("Something went wrong contacting Piston.");
            println!("{}", e);
        }
    }
}

许可证

piston_rs 根据 MIT 许可证 许可。

依赖项

~4–15MB
~223K SLoC