pxr_build 0.1.0

Rust interface for OpenUSD
Documentation

pxr_rs

Rust interface for OpenUSD.

Status

This project is in early development and is not ready for production use. Not all of the OpenUSD API is currently exposed.

Documentation and examples are currently lacking but will be the focus once the crates are more stable.

Currently, OpenUSD 22.11 compiled via build options specified via the default features of pxr_sys is the primary target upon which the project is being developed.

Overview

The workspace contains these packages:

  • pxr_build: Helper crate for building OpenUSD bindings
  • pxr_sys: Unsafe Rust bindings for OpenUSD
  • pxr: Safe Rust bindings for OpenUSD (WIP)

Most of the bindings are automatically generated from the OpenUSD headers using autocxx, while some are hand-written via rust-cpp and additional macros inside pxr_build. The C++ library of OpenUSD can be automatically downloaded and compiled during the cargo build process if the vendored feature is enabled.

Dependencies

  • cmake, clang, python3-dev for FFI bindings generation.
  • libarchive as a transitive dependency of compress-tools.

Enabling of additional non-default features might require additional dependencies. This is currently not tested/documented.

Instructions

Rust

Add pxr as a Rust dependency to your Cargo.toml manifest.

[dependencies]
pxr = { git = "https://github.com/AndrejOrsula/pxr_rs.git" }

License

This project is dual-licensed to be compatible with the Rust project, under either the MIT or Apache 2.0 licenses.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.