| Crates.io | rustsourcebundler |
| lib.rs | rustsourcebundler |
| version | 0.14.1 |
| created_at | 2017-06-27 19:00:03.718775+00 |
| updated_at | 2025-03-17 19:27:25.566867+00 |
| description | Bundle the source code of a rust cargo crate in a single source file |
| homepage | https://github.com/lpenz/rust-sourcebundler |
| repository | https://github.com/lpenz/rust-sourcebundler.git |
| max_upload_size | |
| id | 21018 |
| size | 37,627 |
Bundle the source code of a rust cargo crate in a single source file.
Very useful for sending the source code to a competitive programming site that accept only a single file (codingame, I'm looking at you) and still keeping the cargo structure locally.
Add the following snippet to your Cargo.toml:
[package]
(...)
build = "build.rs"
[build-dependencies]
rustsourcebundler = { git = "https://github.com/lpenz/rust-sourcebundler" }
And create the file build.rs with the following:
//! Bundle mybin.rs and the crate libraries into singlefile.rs
use std::path::Path;
extern crate rustsourcebundler;
use rustsourcebundler::Bundler;
fn main() {
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();
}
You can use the code inside the example directory of this repository as a starting point.