slava-sh / rust-bundler

Creates a single-source-file version of a Cargo package
https://crates.io/crates/bundler
MIT License
21 stars 8 forks source link

rust-bundler

Creates a single-source-file version of a Cargo package.

Build status Coverage report Crates.io

Features

Example

Input:

// src/internal.rs:
pub fn hello_world() {
    println!("Hello, world!");
}

// src/lib.rs:
mod internal;
pub use internal::hello_world;

// src/main.rs:
extern crate example;
fn main() {
    example::hello_world();
}

Output:

mod internal {
    pub fn hello_world() {
        println!("Hello, world!");
    }
}
pub use internal::hello_world;
fn main() {
    hello_world();
}

More examples in tests/testdata.

Usage

Install:

$ cargo install bundler

Run:

$ bundle path/to/project >output.rs

Library Usage

[dependencies]
bundler = "0.1"
extern crate bundler;

fn main() {
    let code = bundler::bundle("path/to/project");
    println!("{}", code);
}

Similar Projects