Embark Rust Ecosystem
High-level tracking and discussions about improving Rust and the Rust ecosystem for our game development use cases at Embark.
Check out the Issues for active topics.
When we started Embark, we chose Rust as our primary language for the long term future we are building. We love the safety and robustness of the language, the ability to write high performance, safe, and (mostly) bug free code and then fearlessly refactor and change it without common lifetime/ownership, memory safety or race condition problems.
That, combined with the openness and collaborative nature of the quickly growing ecosystem of and around Rust with crates.io and the tens of thousands of open source crates with a best-in-class package system, cargo, truly makes Rust a language for the next 40 years.
We believe that by openly sharing our work, issues, and ideas with the community, we'll create more opportunities for collaboration and discussion to bring us toward a great future for Rust and for the games industry in general.
-- Johan Andersson (
@repi), CTO, Embark
Open source Rust projects we've created so far and are actively using and maintaining:
||Statically linked MoltenVK for Vulkan on Mac using Ash|
||Kubekite, but in Rust, using configuration from your repos|
||Cargo plugin to generate list of all licenses for a crate|
||Cargo plugin to help you manage large dependency graphs|
||Creates graphs of crates from cargo metadata|
||Use NVIDIA PhysX in Rust|
||Simple instrumentation profiler for Rust|
||Cross-platform Rust global memory allocator using rpmalloc|
||Making Rust a first-class language & ecosystem for GPU code|
||Helper crate for SPDX expressions|
||Superluminal Performance profiler integration|
||Google Cloud Storage functions that follows the sans-io approach|
||Small OAuth crate that follows the sans-io approach|
||Example-based texture synthesis generator and CLI example|
||Easily retry futures|
You can see all these crates on our crates.io profile.
We encourage contributions to any of our open source projects. If you're not sure where to start, look at the GitHub issues on any of the above projects!
guidelines.md for our guidelines & policies for how we develop in Rust.
To make sure we keep a friendly and safe environment for everyone, we have a Contributor Code of Conduct. You can read this in any of our projects' repositories. By contributing to our projects, you agree to the code of conduct.
Areas of Interest
Areas that we are interested in or working on, and want to help see improved in Rust:
🕹️Game engine systems - multiplayer, rendering, physics, audio, server, assets, workflows
📦Developer experience - fast iteration with large projects/monorepos, distributed builds, debugging, profiling, IDE
🤖Machine learning - efficient inference, library bindings, training environments
🚀High performance runtime - CPU job scheduling, code generation, optimizing crates
📺 📱Console & mobile platform support - PlayStation, Xbox, Android. #18
We track and discuss these from our perspective in the Issues for visibility and to get feedback, feel free to join in if you have ideas!
Also check out the Rust Game Development Working Group.
We believe that open source creators are integral to the success of the Rust ecosystem, as well as our own success. We offer monetary sponsorship to several individuals and projects via Patreon, GitHub and OpenCollective.
Projects we are currently sponsoring:
- Amethyst - "Data-driven game engine written in Rust"
- Bevy - "A refreshingly simple data-driven game engine built in Rust"
- Dimforge - "Open-Source Rust crates for numerical simulation"
- rust-analyzer - "Bringing a great IDE experience to the Rust programming language"
- Clap - "Fast. Configurable. Argument Parsing for Rust"
- Gtk-rs - "Rust bindings for GTK+ 3, Cairo, GtkSourceView and other GLib-compatible libraries"
- headcrab - "A modern Rust debugger library"
- knurling-rs - "Improving the tools and material used to build, debug, and learn embedded systems"
Work with us!
We're actively looking to collaborate with developers on the areas discussed in this repository. If you're interested in working on a specific issue or idea highlighted here, please reach out to us at
email@example.com to discuss contracting opportunities or sponsorship.
We are also hiring for full-time positions in Stockholm!