#single-file #source #source-file #bundle #build #merge #competitive-programming

bin+lib rustsourcebundler

将 rust cargo crate 的源代码打包成单个源文件

20 个版本 (10 个重大更新)

0.13.0 2024年6月17日
0.11.7 2024年4月19日
0.11.6 2024年1月30日
0.11.4 2023年11月15日
0.1.1 2017年6月27日

#726命令行工具

Download history 153/week @ 2024-04-19 2/week @ 2024-04-26 14/week @ 2024-05-24 5/week @ 2024-05-31 141/week @ 2024-06-07 181/week @ 2024-06-14 90/week @ 2024-06-21 3/week @ 2024-06-28 35/week @ 2024-07-05 48/week @ 2024-07-26 4/week @ 2024-08-02

每月52 次下载

MIT 许可证

16KB
259

CI coveralls crates.io

rust-sourcebundler

将 rust cargo crate 的源代码打包成单个源文件。

非常适合将源代码发送到只接受单个文件的竞技编程网站(例如 codingame),同时保留本地 cargo 结构。

用法

将以下片段添加到您的 Cargo.toml

[package]
(...)
build = "build.rs"

[build-dependencies]
rustsourcebundler = { git = "https://github.com/lpenz/rust-sourcebundler" }

并创建文件 build.rs,内容如下

//! Bundle mybin.rs and the crate libraries into singlefile.rs

use std::path::Path;
extern crate rustsourcebundler;
use rustsourcebundler::Bundler;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut bundler: Bundler = Bundler::new(Path::new("src/bin/mybin.rs"),
                                            Path::new("src/bin/singlefile.rs"));
    bundler.crate_name("<crate name>");
    bundler.run()?;
    Ok(())
}

您可以使用此仓库 example 目录中的代码作为起点。

类似项目

依赖项

~4–5.5MB
~99K SLoC