Awesome Open Source
Awesome Open Source

What framework to use for X?

Community Icon Invitation link to the Game Development in Rust Discord server

This curated list is from the Game Development in Rust Discord server and prioritizes frameworks that have examples and are ready or almost ready for production. This list was made so it can be shared with beginners.

For a longer list of frameworks, see Are We Game Yet?.

Rust basics

Resources to understand ECS (Entity Component System) and DOD (Data-Oriented Design)

ECS/DOD is quite a big deal in Rust. Here are some resources to understand the basics:

Productivity tools for game development

High-level frameworks for game development

  • amethyst 2D, 3D. Graphics, audio.
  • bevy engine 2D, 3D. Graphics, audio, UI. ECS/DOD oriented.
  • oxygengine 2D. Graphics, audio.
  • macroquad 2D, 3D. Graphics. Inspired on Raylib (C framework).
  • ggez 2D. Graphics, audio. Inspired on LÖVE (Lua framework).
  • quicksilver 2D. Graphics, audio.
  • tetra 2D. Graphics, audio. Inspired on XNA and MonoGame.
  • coffee 2D. Graphics.

Just graphics

  • luminance High level. Uses OpenGL.
  • miniquad High-level. Focus on portability. Uses OpenGL and Metal (Work-in-progress).
  • wgpu Intermediate-level. Uses gfx-hal.
  • glium Intermediate-level. Safer wrapper for OpenGL 3+.
  • golem Intermediate-level. Higher level wrapper built on glow.
  • vulkano Intermediate-level. Safer wrapper for Vulkan.
  • rendy Intermediate-level. Uses gfx-hal. Used by amethyst.
  • gfx-hal Low-level, based on Vulkan. Backends: Vulkan, GL, DX12, and Metal.
  • glow Low-level. Safer wrapper for OpenGL and WebGL.
  • erupt Low-level bindings to Vulkan.
  • ash Low-level bindings to Vulkan. Used by gfx-hal.
  • gl46 Low-level. Wrapper for OpenGL 4.6 (generated by Phosphorus). Used by glow.
  • gl33 Low-level. Wrapper for OpenGL 3.3 (generated by Phosphorus).

Window creation and OS integration

  • winit Rusty windowing framework.
  • glfw Rust wrapper for the C GLFW3 library.
  • fermium Rust wrapper for the C SDL2 library. Contains more than window creation features.
  • sdl2 Rust wrapper for the C SDL2 library. Contains more than window creation features.

Frameworks for ECS

Frameworks for physics and linear math (for 2D and 3D programming)

Graphical user interface (GUI)

  • egui Pure Rust cross-platform library.
  • iced Pure Rust cross-platform library.
  • imgui Bindings in Rust for the Dear ImGui C++ library.

Font (parser and/or rasterizer)

  • fontdue Pure Rust. No std dependency.

Space partitioning

  • rstar n-dimensional r*-tree implementation
  • bvh Bounding Volume Hierarchy, built on top of nalgebra.
  • kdtree K-dimensional tree in Rust for fast geospatial indexing and nearest neighbors lookup.
  • ncollide has its own Bounding Volume Tree implementation: 3d docs and 2d docs.
  • spade Implements r*-tree and delaunay triangulation.
  • flat_spatial Simple flat structures such as a grid/hashmap of cells.
  • acacia Generic over the dimension of the partitioned space and thus supports binary trees, quadtrees, octrees, etc.

Audio

  • alto Wrapper for OpenAL. Hardly any further development expected, as OpenAL is a well established library.
  • kira Library for expressive and dynamic game audio.
  • openal Wrapper for OpenAL. Hardly any further development expected, as OpenAL is a well established library.
  • rodio

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
rust (4,321
audio (621
opengl (456
game-development (456
graphics (407
vulkan (208
community (172
physics (143
ecs (124
libraries (65
entity-component-system (55
frameworks (19

Find Open Source By Browsing 7,000 Topics Across 59 Categories