#build-dependencies #cpp

build cxx-build

C++ code generator for integrating cxx crate into a Cargo build

195 stable releases

1.0.194 Jan 21, 2026
1.0.192 Dec 16, 2025
1.0.190 Nov 28, 2025
1.0.161 Jul 19, 2025
0.3.4 May 22, 2020

#24 in Build Utils

Download history 558143/week @ 2025-10-24 533833/week @ 2025-10-31 528642/week @ 2025-11-07 536839/week @ 2025-11-14 475570/week @ 2025-11-21 382867/week @ 2025-11-28 405578/week @ 2025-12-05 448072/week @ 2025-12-12 306570/week @ 2025-12-19 199323/week @ 2025-12-26 381093/week @ 2026-01-02 475116/week @ 2026-01-09 456332/week @ 2026-01-16 478047/week @ 2026-01-23 518726/week @ 2026-01-30 559301/week @ 2026-02-06

2,105,927 downloads per month
Used in 601 crates (206 directly)

MIT/Apache

410KB
11K SLoC

The CXX code generator for constructing and compiling C++ code.

This is intended to be used from Cargo build scripts to execute CXX's C++ code generator, set up any additional compiler flags depending on the use case, and make the C++ compiler invocation.


Example

Example of a canonical Cargo build script that builds a CXX bridge:

// build.rs

fn main() {
    cxx_build::bridge("src/main.rs")
        .file("src/demo.cc")
        .std("c++11")
        .compile("cxxbridge-demo");

    println!("cargo:rerun-if-changed=src/demo.cc");
    println!("cargo:rerun-if-changed=include/demo.h");
}

A runnable working setup with this build script is shown in the demo directory of https://github.com/dtolnay/cxx.


Alternatives

For use in non-Cargo builds like Bazel or Buck, CXX provides an alternate way of invoking the C++ code generator as a standalone command line tool. The tool is packaged as the cxxbridge-cmd crate.

$ cargo install cxxbridge-cmd  # or build it from the repo

$ cxxbridge src/main.rs --header > path/to/mybridge.h
$ cxxbridge src/main.rs > path/to/mybridge.cc

Dependencies

~2.6–5.5MB
~96K SLoC