• Stars
    star
    843
  • Rank 51,862 (Top 2 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust wants & tracking for Embark πŸ¦€

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.

Background

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

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

Name Description Crates.io
πŸŒ‹ ash-molten Statically linked MoltenVK for Vulkan on Mac using Ash Latest version
πŸ‘· buildkite-jobify Kubekite, but in Rust, using configuration from your repos
πŸ“œ cargo-about Cargo plugin to generate list of all licenses for a crate Latest version
❌ cargo-deny Cargo plugin to help you manage large dependency graphs Latest version
🎁 cargo-fetcher cargo fetch alternative for use in CI or other "clean" environments Latest version
🧠 cervo Middleware used for ML inference in our games. Latest version
βš™οΈ cfg-expr A parser and evaluator for Rust cfg() expressions Latest version
πŸ“’ cloud-dns Client to interact with Google Cloud DNS v1 Latest version
πŸ”₯ crash-handling Collection of crates for catching and handling crashes
⛴️ discord-sdk An open implementation of the Discord Game SDK in Rust Latest version
πŸŒ‰ fsr-rs Rust bindings for AMD FidelityFXβ„’ Super Resolution Latest version
πŸš™ gsutil A small, incomplete replacement for the official gsutil Latest version
πŸ’‘ kajiya Experimental real-time global illumination renderer
πŸ“¦ krates Creates graphs of crates from cargo metadata Latest version
πŸͺž mirror-mirror Powerful reflection library for Rust Latest version
πŸ†™ octobors GitHub action for automerging PRs based on a few rules
🎳 physx Use NVIDIA PhysX in Rust Latest version
βŒ› poll-promise A Rust promise for games and immediate mode GUIs Latest version
πŸ—œ presser A helper crate for doing low-level data copies Latest version
🐦 puffin Simple instrumentation profiler for Rust Latest version
πŸ““ relnotes Automatic GitHub release notes Latest version
🐏 rpmalloc-rs Cross-platform Rust global memory allocator using rpmalloc Latest version
πŸ‰ rust-gpu Making Rust a first-class language & ecosystem for GPU code
🌌 rymder Unofficial agones client Latest version
πŸ†” spdx Helper crate for SPDX expressions Latest version
πŸ›  spirv-tools-rs An unofficial wrapper for SPIR-V Tools Latest version
πŸ”† superluminal-perf Superluminal Performance profiler integration Latest version
πŸ“‚ tame-gcs Google Cloud Storage functions that follows the sans-io approach Latest version
πŸ” tame-oauth Small OAuth crate that follows the sans-io approach Latest version
🧬 tame-oidc Small OIDC crate that follows the sans-io approach Latest version
πŸ’© tame-webpurify An incredibly small library to interact with the webpurify REST API Latest version
🎨 texture-synthesis Example-based texture synthesis generator and CLI example Latest version
πŸ›  tiny-bench A tiny benchmarking library Latest version
⏱️ tracing-ext-ffi-subscriber Subscriber for passing spans to a profiling tool via FFI. Latest version
πŸͺ΅οΈ tracing-logfmt A logfmt formatter for tracing-subscriber. Latest version
πŸ’« tryhard Easily retry futures Latest 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:

  • ☸ Distributed systems - async, tokio, tonic

  • πŸ•ΉοΈ Game engine systems - multiplayer, rendering, physics, audio, server, assets, workflows

  • πŸ“¦ Developer experience - fast iteration with large projects/monorepos, distributed builds, debugging, profiling, IDE

  • πŸ›Έ WebAssembly and WASI - sandboxed safe Rust code on client, edge & cloud

  • πŸ€– 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

  • 🏎 Rust on GPU - future compute & ML programming models beyond shaders, https://shader.rs

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.

Sponsorships

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:

  • 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"
  • knurling-rs - "Improving the tools and material used to build, debug, and learn embedded systems"
  • Tokio - "Build reliable network applications without compromising speed"

Full list of projects and individual developers we are sponsoring: OpenCollective, GitHub Sponsors and Patreon.

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 protected] 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.

More Repositories

1

rust-gpu

πŸ‰ Making Rust a first-class language and ecosystem for GPU shaders 🚧
Rust
6,796
star
2

kajiya

πŸ’‘ Experimental real-time global illumination renderer πŸ¦€
Rust
4,524
star
3

texture-synthesis

🎨 Example-based texture synthesis written in Rust πŸ¦€
Rust
1,717
star
4

wg-ui

WireGuard Web UI for self-serve client configurations, with optional auth.
Go
1,468
star
5

cargo-deny

❌ Cargo plugin for linting your dependencies πŸ¦€
Rust
1,254
star
6

puffin

🐦 Friendly little instrumentation profiler for Rust πŸ¦€
Rust
973
star
7

physx-rs

🎳 Rust binding for NVIDIA PhysX πŸ¦€
Rust
611
star
8

blender-tools

🐡 Embark Addon for Blender
Python
392
star
9

cargo-about

πŸ“œ Cargo plugin to generate list of all licenses for a crate πŸ¦€
Rust
320
star
10

tryhard

πŸ’« Easily retry futures πŸ¦€
Rust
182
star
11

presser

A crate to help you copy things into raw buffers without invoking spooky action at a distance (undefined behavior).
Rust
150
star
12

rpmalloc-rs

🐏 rpmalloc global memory allocator for Rust πŸ¦€
Rust
126
star
13

crash-handling

Collection of crates to deal with crashes
Rust
122
star
14

poll-promise

A Rust promise for games and immediate mode GUIs
Rust
119
star
15

discord-sdk

An open implementation of the Discord Game SDK in Rust
Rust
108
star
16

skyhook

Simple Python communication system for DCC's and Game Engines
Python
104
star
17

spirt

SPIR-πŸ‡Ή: shader-focused IR to target, transform and translate from πŸ¦€
Rust
101
star
18

superluminal-perf-rs

πŸ”† Superluminal Performance profiler Rust API πŸ¦€
Rust
94
star
19

ash-molten

πŸŒ‹ Statically linked MoltenVK for Vulkan on Mac using Ash πŸ¦€
Rust
91
star
20

cargo-deny-action

❌ GitHub Action for cargo-deny πŸ¦€
Shell
89
star
21

cargo-fetcher

🎁 cargo plugin for quickly fetching dependencies πŸ¦€
Rust
83
star
22

relnotes

Automatic GitHub Release Notes
Rust
77
star
23

opensource-template

🌻 Template for creating new repositories
74
star
24

tame-oauth

πŸ” Small OAuth crate that follows the sans-io approach πŸ¦€
Rust
68
star
25

mirror-mirror

πŸͺž Powerful reflection library for Rust
Rust
68
star
26

tiny-bench

A tiny benchmarking library
Rust
55
star
27

k8s-buildkite-plugin

Run any buildkite build step as a Kubernetes Job
Jsonnet
48
star
28

krates

πŸ“¦ Creates graphs of crates from cargo metadata πŸ¦€
Rust
45
star
29

opensource

Open source processes, policies, and info
Rust
42
star
30

tame-gcs

πŸ“‚ A small library with a limited set of Google Cloud Storage operations πŸ¦€
Rust
37
star
31

cervo

Utility wrappers for tract
Rust
36
star
32

server-framework

Framework for running network services, opinions included
Rust
36
star
33

tracing-logfmt

A logfmt formatter for tracing subscriber logs
Rust
35
star
34

octobors

Rust program for automerging PRs based on a few rules
Rust
35
star
35

nfd2

OS native dialogs for Windows, MacOS, and Linux
Rust
32
star
36

cfg-expr

A parser and evaluator for Rust cfg() expressions. Targets as of Rust 1.58.0 are supported.
Rust
32
star
37

opa-policies

Contains OPA Policies for Dockerfiles, Kubernetes YAMLs, Terraform, etc
Open Policy Agent
29
star
38

gsutil

Minimal gsutil replacement
Rust
27
star
39

spdx

πŸ†” Helper crate for SPDX expressions. πŸ¦€
Rust
27
star
40

pdm-plugin-torch

A tool for managing torch-variants with PDM.
Python
22
star
41

opensource-website

🌐 Hub for Embark's open source efforts
HTML
22
star
42

buildkite-jobify

πŸ‘· Kubekite, but in Rust, using configuration from your repos πŸ¦€
Rust
21
star
43

spirv-tools-rs

πŸ›  Wrapper crate for SPIRV-Tools πŸ¦€
C++
20
star
44

tame-index

Small crate for interacting with cargo registry indices
Rust
18
star
45

emote

Reinforcement learning library from Embark Studios
Python
17
star
46

rymder

Unofficial agones client SDK
Rust
17
star
47

fsr-rs

Rust bindings for AMD FidelityFXβ„’ Super Resolution
C
16
star
48

proto-gen

A protobuf generation runner/cli using tonic build
Rust
15
star
49

sentry-contrib-rust

Integrates crashdump reporting with Sentry
Rust
15
star
50

tame-oidc

🧬 Small OAuth crate that follows the sans-io approach πŸ¦€
Rust
11
star
51

cloud-dns

A wrapper for the Google Cloud DNS API (https://cloud.google.com/dns)
Rust
10
star
52

tame-webpurify

πŸ’© Small HTTP client for the Webpurify API following the sans-io approach πŸ¦€
Rust
9
star
53

tracing-ext-ffi-subscriber

Simple subscriber for forwarding tracing spans to a C or C++ profiling API.
Rust
4
star
54

server-code-exciser

A program that contains grammars and functionality to remove server only code from code bases.
C#
4
star
55

boh

Rust
4
star
56

gke-accelerated-xorg-example

Example project for running remote rendering on GKE
Dockerfile
3
star
57

helix-oidc

🧬 Helix Perforce OIDC validator
Go
3
star
58

cassini

Topology-aware distributed cache
Go
2
star
59

minwin

Rust
2
star
60

container-packer-qemu

πŸ“¦ Dockerized packer with qemu
Dockerfile
1
star
61

rustc-compile-time-regress

Rust
1
star
62

.github

Default community health files for GitHub (https://help.github.com/en/github/building-a-strong-community/creating-a-default-community-health-file-for-your-organization)
1
star
63

missing-symbols

Rust
1
star
64

prefabricator-ue4

Prefabricator - Prefab plugin for Unreal Engine 4 https://prefabricator.io
C++
1
star