Home

Awesome

Embark Rust Ecosystem

Embark logo

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. And our embark.dev open source portal.

Open Source

Open source Rust projects we've created so far and are actively using and maintaining:

NameDescriptionCrates.io
πŸŒ‹ ash-moltenStatically linked MoltenVK for Vulkan on Mac using AshLatest version
πŸ‘· buildkite-jobifyKubekite, but in Rust, using configuration from your repos
πŸ“œ cargo-aboutCargo plugin to generate list of all licenses for a crateLatest version
❌ cargo-denyCargo plugin to help you manage large dependency graphsLatest version
🎁 cargo-fetchercargo fetch alternative for use in CI or other "clean" environmentsLatest version
🧠 cervoMiddleware used for ML inference in our games.Latest version
βš™οΈ cfg-exprA parser and evaluator for Rust cfg() expressionsLatest version
πŸ“’ cloud-dnsClient to interact with Google Cloud DNS v1Latest version
πŸ”₯ crash-handlingCollection of crates for catching and handling crashes
⛴️ discord-sdkAn open implementation of the Discord Game SDK in RustLatest version
πŸŒ‰ fsr-rsRust bindings for AMD FidelityFXβ„’ Super ResolutionLatest version
πŸš™ gsutilA small, incomplete replacement for the official gsutilLatest version
πŸ’‘ kajiyaExperimental real-time global illumination renderer
πŸ“¦ kratesCreates graphs of crates from cargo metadataLatest version
πŸͺž mirror-mirrorPowerful reflection library for RustLatest version
πŸ†™ octoborsGitHub action for automerging PRs based on a few rules
🎳 physxUse NVIDIA PhysX in RustLatest version
βŒ› poll-promiseA Rust promise for games and immediate mode GUIsLatest version
πŸ—œ presserA helper crate for doing low-level data copiesLatest version
🐦 puffinSimple instrumentation profiler for RustLatest version
πŸ““ relnotesAutomatic GitHub release notesLatest version
🐏 rpmalloc-rsCross-platform Rust global memory allocator using rpmallocLatest version
πŸ‰ rust-gpuMaking Rust a first-class language & ecosystem for GPU code
🌌 rymderUnofficial agones clientLatest version
πŸ†” spdxHelper crate for SPDX expressionsLatest version
πŸ›  spirv-tools-rsAn unofficial wrapper for SPIR-V ToolsLatest version
πŸ”† superluminal-perfSuperluminal Performance profiler integrationLatest version
πŸ“‚ tame-gcsGoogle Cloud Storage functions that follows the sans-io approachLatest version
πŸ” tame-oauthSmall OAuth crate that follows the sans-io approachLatest version
🧬 tame-oidcSmall OIDC crate that follows the sans-io approachLatest version
πŸ’© tame-webpurifyAn incredibly small library to interact with the webpurify REST APILatest version
🎨 texture-synthesisExample-based texture synthesis generator and CLI exampleLatest version
πŸ›  tiny-benchA tiny benchmarking libraryLatest version
⏱️ tracing-ext-ffi-subscriberSubscriber for passing spans to a profiling tool via FFI.Latest version
πŸͺ΅οΈ tracing-logfmtA logfmt formatter for tracing-subscriber.Latest version
πŸ’« tryhardEasily retry futuresLatest version

You can see all these crates on our crates.io profile.

Contributing

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!

Check out 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:

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.

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 opensource@embark-studios.com to discuss contracting opportunities or sponsorship.

We are also hiring for full-time positions remotely within Europe or on-site in Stockholm or MalmΓΆ!

Let's go! πŸš€

License

Licensed under either of

at your option.

Contribution

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.