classicvalues / autocxx

Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

Home Page:https://docs.rs/autocxx

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Autocxx

GitHub crates.io docs.rs

This project is a tool for calling C++ from Rust in a heavily automated, but safe, fashion.

The intention is that it has all the fluent safety from cxx whilst generating interfaces automatically from existing C++ headers using a variant of bindgen. Think of autocxx as glue which plugs bindgen into cxx.

For full documentation, see the manual.

Overview

autocxx::include_cpp! {
    #include "url/origin.h"
    generate!("url::Origin")
    safety!(unsafe_ffi)
}

fn main() {
    let o = ffi::url::Origin::CreateFromNormalizedTuple("https",
        "google.com", 443);
    let uri = o.Serialize();
    println!("URI is {}", uri.to_str().unwrap());
}

License and usage notes

This is not an officially supported Google product.

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

About

Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers

https://docs.rs/autocxx

License:Apache License 2.0


Languages

Language:Rust 99.9%Language:Shell 0.1%Language:JavaScript 0.0%