All Projects → meta-rust → Meta Rust

meta-rust / Meta Rust

Licence: mit
OpenEmbedded/Yocto layer for Rust and Cargo

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Meta Rust

Cargo Audit
Audit Cargo.lock files for crates with security vulnerabilities
Stars: ✭ 735 (+580.56%)
Mutual labels:  cargo
Macchina
A system information fetcher, with a focus on performance and minimalism.
Stars: ✭ 45 (-58.33%)
Mutual labels:  cargo
Cargo Watch
🔭🚢 Watches over your Cargo project's source.
Stars: ✭ 1,281 (+1086.11%)
Mutual labels:  cargo
Cargo Make
Rust task runner and build tool.
Stars: ✭ 895 (+728.7%)
Mutual labels:  cargo
Rust Android Gradle
Stars: ✭ 14 (-87.04%)
Mutual labels:  cargo
Cargo Contribute
Cargo subcommand for contributing to your dependencies
Stars: ✭ 56 (-48.15%)
Mutual labels:  cargo
Rust Python Example
Example of using Rust to Extend Python
Stars: ✭ 699 (+547.22%)
Mutual labels:  cargo
Cargo Embed
a cargo extension for working with microcontrollers
Stars: ✭ 100 (-7.41%)
Mutual labels:  cargo
Small Deployer
Git Webhook client, in rust.
Stars: ✭ 30 (-72.22%)
Mutual labels:  cargo
Rust Python Ext
Distutils helpers for rust Python extensions
Stars: ✭ 69 (-36.11%)
Mutual labels:  cargo
Cargo Tomlfmt
Formatting Cargo.toml
Stars: ✭ 18 (-83.33%)
Mutual labels:  cargo
Xargo
The sysroot manager that lets you build and customize `std`
Stars: ✭ 841 (+678.7%)
Mutual labels:  cargo
Tarpaulin
A code coverage tool for Rust projects
Stars: ✭ 1,097 (+915.74%)
Mutual labels:  cargo
Cargo Expand
Subcommand to show result of macro expansion
Stars: ✭ 886 (+720.37%)
Mutual labels:  cargo
Cargo Remote
cargo subcommand to compile rust projects remotely
Stars: ✭ 87 (-19.44%)
Mutual labels:  cargo
Cargo Fuzz
Command line helpers for fuzzing
Stars: ✭ 725 (+571.3%)
Mutual labels:  cargo
Vim Crates
Handle Cargo dependencies like a Rustavimean.
Stars: ✭ 54 (-50%)
Mutual labels:  cargo
Corrosion
Marrying Rust and CMake - Easy Rust and C/C++ Integration!
Stars: ✭ 106 (-1.85%)
Mutual labels:  cargo
Audit Check
🛡️ GitHub Action for security audits
Stars: ✭ 90 (-16.67%)
Mutual labels:  cargo
Nat
nat - the 'ls' replacement you never knew you needed
Stars: ✭ 1,129 (+945.37%)
Mutual labels:  cargo

Introduction

This OpenEmbedded layer provides the rust compiler, tools for building packages (cargo), and a few example projects.

What works:

  • Building rust-native and cargo-native
  • Building Rust based projects with Cargo for the TARGET
    • e.g. rustfmt which is used by the CI system
  • -buildsdk and -crosssdk packages

What doesn't:

  • Using anything but x86_64 as the build environment
  • rust (built for target) issue #81

What's untested:

  • cargo (built for target)

Building a rust package

When building a rust package in bitbake, it's usually easiest to build with cargo using cargo.bbclass. If the package already has a Cargo.toml file (most rust packages do), then it's especially easy. Otherwise you should probably get the code building in cargo first.

Once your package builds in cargo, you can use cargo-bitbake to generate a bitbake recipe for it. This allows bitbake to fetch all the necessary dependent crates, as well as a pegged version of the crates.io index, to ensure maximum reproducibility.

NOTE: You will have to edit the generated recipe based on the comments contained within it

TODO

Pitfalls

  • TARGET_SYS must be different from BUILD_SYS. This is due to the way Rust configuration options are tracked for different targets. This is the reason we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.

Dependencies

On the host:

  • Any -sys packages your project might need must have RDEPENDs for the native library.

On the target:

  • Any -sys packages your project might need must have RDEPENDs for the native library.

Maintainer(s) & Patch policy

Open a Pull Request.

The master branch supports the latest master of poky. When poky creates releases, we will create a branch with the same name as the poky release. This release branch should always work with that poky release. Note that these release branches will typically be less tested than the master branch.

All new patches against rust, rust-llvm, and cargo must have referenced upstream issues or PRs opened or an explanation why the patch cannot be upstreamed. This cooresponds to the OpenEmbedded policy for other meta layers.

More info can be seen on the wiki.

Copyright

MIT OR Apache-2.0 - Same as rust

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].