Commits on Source (3)
-
Cargo.lock: file that contains all (including transitive) the dependencies. We only want to include one of it and it's yet available. target*/: Cargo builds by default into the target/ dir, so avoid having it in the git diff !build.rs: Cargo has build scripts, that by default are named build.rs
5c644791 -
> A workspace is a collection of one or more packages https://doc.rust-lang.org/cargo/reference/workspaces.html#workspaces Rust abstractions of VLC Core will live in src/rust/, while the Rust modules will live in the respective directories in modules/.
f0f67ecc -
This binary crate, called vlcrs-sys-generator, uses the bindgen[1] crate to automatically generate raw (extern "C"...) bindings, which are then used by safe abstractions. The goal is for this program to be used to generate raw bindings that are which will be used by safe abstractions, each safely wrapping a part of the VLC core API, generally a header will be a crate. This is done so that the so that the dependency chain of the Rust modules closely follows that of the C modules, in particular a demux module should not need to be rebuild if it doesn't depend on vout. Since writing and maintaining raw bindings is tedious and error-prone, the raw bindings (extern "C"...) are generated using a Clang front-end, bindgen, written in Rust. Updating the bindings should be as simple as running `cargo run -p vlcrs-sys-generator'. [1]: https://rust-lang.github.io/rust-bindgen/
bd1aaaf4
Showing
- .gitignore 3 additions, 0 deletions.gitignore
- src/rust/Cargo.toml 4 additions, 0 deletionssrc/rust/Cargo.toml
- src/rust/vlcrs-sys-generator/Cargo.toml 8 additions, 0 deletionssrc/rust/vlcrs-sys-generator/Cargo.toml
- src/rust/vlcrs-sys-generator/src/main.rs 88 additions, 0 deletionssrc/rust/vlcrs-sys-generator/src/main.rs
src/rust/Cargo.toml
0 → 100644
src/rust/vlcrs-sys-generator/Cargo.toml
0 → 100644
src/rust/vlcrs-sys-generator/src/main.rs
0 → 100644