Bug 1163224 has landed on inbound, which means that Gecko builds with --enable-rust now support multiple Rust crates. This change is intended to make the lives of people developing Rust components easier, and it comes with several caveats:
1) There is zero support for interdependencies between crates, so you have to structure your crate as one big crate that includes any dependencies, rather than several separate crates, as is the norm. This is clearly suboptimal, and it will be fixed. I think it's an open question exactly how we're going to integrate multiple crates and external projects anyway, so feel free to experiment! 2) We do not have Rust support on all of our Tier 1 platforms (Android is still being worked on), so actually depending on Rust code everywhere is still not possible. 3) Due to bug 1178897, Rust code uses a completely different memory allocator than the rest of Gecko. We therefore don't have any visibility into Rust's memory allocations through things like about:memory, using Rust code worsens fragmentation issues, and there are also edge cases with allocating in C++ and freeing in Rust (or vice versa). This is obviously something we're going to fix, ideally soon. We --enable-rust on all of our Tier 1 desktop platforms, but given 2) and 3) above, it seems best to limit the amount of Rust code we actually ship. So if you want to land Rust components in-tree right now, I'd recommend gating your component behind an --enable-shiny configure option. Ideally 2) and 3) will be fixed in short order, 1) will be ironed out, and then the real fun can begin! Thanks, -Nathan _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform