Awesome collection of multimedia crates: GameDev, Graphics, Video, Audio, Math, DSP. It is curated by us.
You might also be interested in other tooboxes:
- 🔧 Explore : general-purpose toolbox with collection of crates.
- 🎮 Explore : multimedia toolbox with collection of crates for GameDev, Graphics, Video, Audio.
- ♾️ Explore : scientific toolbox with collection of crates for Math, Physycs, Lienar Algebra, Machine Learnign, DSP.
- 📦 Explore : distros toolbox with collection of utilities written in Rust to been distributed outside of Rust ecosystem.
⬇️ Tags legend at the end of the page.
( renderer )
- WebGPU : State of the art API for rendering
- skia-bindings by Long Yinan : binding of skia
- glow by Josh Groves : GL on Whatever
- glutin by Rust Windowing : OpenGL context
- gl-rs by Brendan Zabarauskas : OpenGL function pointer
- limelight by Paul Butler : WebGL2 wrapper with a renderer
- rend3 by BVE-Reborn Train Simulator : easy to use, customizable, efficient 3D renderer library built on wgpu
( renderer ) ( middleware )
- three-d by Asger Nyman Christiansen : another rendering middleware renderer
- luminance by Dimitri Sabadie : another rendering middleware renderer
- miniquad by Fedor Logachev : minimal cross-platform renderer
- kiss3d by Sébastien Crozet : stupid 3d renderer
- pixels by Jay Oster : tiny hardware-accelerated pixel frame buffer
- speedy2d by QuantumBadger : hardware-accelerated renderer with easy to use API
- pixels by Jay Oster : small hardware-accelerated pixel frame buffer
- limelight by Paul Butler : WebGL2 wrapper
( engine )
- Bevy by Carter Anderson ( bevy ) : popular wgpu-based game engine
- Piston by PistonDevelopers : a modular game engine written in Rust
- Fyrox by Fyrox Engine : a modern Rust game engine
- Amethyst by Amethyst Foundation : a data-driven and data-oriented game engine aiming to be fast and as configurable as possible
- emerald by bombfuse : 2D rust game engine focused on portability
- tetra by Joe Clay : simple 2D game engine
- macroquad by Fedor Logachev : minimal cross-platform game engine
- unreal-api by Maik Klein : Rust integration for Unreal Engine
- gdnative by vurpo : godot engine binding
( engine )
- Notan by Nazarí González : portable multimedia layer ( web oriented )
( hid )
- gamepad-rs by Edwin Cheng : cross-platform gamepad support
( middleware ) ( shader )
- glsl by Dimitri Sabadie : OpenGL shading language parser
- naga by Dzmitry Malyshau : shader translation
- rust-gpu by EmbarkStudios : first-class language and ecosystem for GPU graphics & compute shaders ( shader )
( geometry )
- tri-mesh by Asger Nyman Christiansen : a triangle mesh data structure
- meshopt by Graham Wihlidal : binding of zeux/meshoptimizer
- euclid by Servo : Geometry primitives
- Pointy by Douglas Lau : Minimal 2D geometry library
- geom-rs by Brandon King : Simple 2D geometry library
- implicit3d by Henning Meyer : 3d implicit geometry
- euler by David Harvey-Macaulay : Mathematics library for 3D computer graphics
- lyon by Nicolas Silva : A path tessellation library written in rust for GPU-based 2D graphics rendering.
- raqote by Jeff Muizelaar : A pure Rust 2D Graphics Library.
- footile by Douglas Lau : A 2D vector graphics library
( windowing )
- winit by rust-windowing : Cross-platform window creation and management
( network )
- crystalorb by Ernest Wong : networking library
( bevy )
- bevy by Carter Anderson ( engine ) : popular wgpu-based game engine
- bevy_mod_picking by Aevyrie : 3D mouse picking
- bevy_ecs_tilemap by John Mitchell : ECS tilemap
- kayak_ui by John Mitchell : game UI
- bevy_tiled by John Mitchell : rendering tiled maps
- bevy_asset_ron by Ida Iyes : RON Assets
- smooth-bevy-cameras by Duncan : camera controllers with buttery, exponential smoothing
( mem_man )
- slabmap by Frozenlib : hashMap-like collection with implicit key
- slab by Carl Lerche : hashMap-like collection with implicit key
- indexing by bluss : solving indexing problem by associating lifetime with intervals
- slotmap by Orson Peters : a hashmap with implicit key
- typed-arena by Simon Sapin : homogenous allocator operating references without the ability to deallocate an individual element
- id-arena by Nick Fitzgerald : homogenous allocator operating ids without the ability to deallocate an individual element
- bumpalo by Nick Fitzgerald : heterogeneous allocator operating ids without the ability to deallocate an individual element
- thunderdome by LPGhatguy : one more generational arena
- anymap by Chris Morgan : wrapper around HashMap< TypeId, Box< dyn Any > >
- specs by Dzmitry Malyshau : ( ecs ) bitmap-based ECS
- legion by Thomas Gillen : ( ecs ) archetype-based ECS
- hecs by Benjamin Saunders : ( ecs ) ergonomic ECS
( webgpu )
- wgpu_glyph by Héctor Ramón ( webgpu ) : text renderer for wgpu
- WebGPU : State of the art API for rendering
- rugl by Greg Tatum : declarative Stateless OpenGL in Rust (inspired by regl)
- glyphon by Josh Groves : 2D text renderer for wgpu
( data_structures )
- building-blocks by Duncan : data structures for graphics
( font )
- swash by Chad Brokaw : font introspection
- zeno by Chad Brokaw ( line ) : path rasterization library
- ttf-parser by Yevhenii Reizner : TrueType font parser
- glyph-brush by Alex Butler : fast GPU cached text rendering
- wgpu_glyph by Héctor Ramón ( webgpu ) : text renderer for wgpu
- fontdb by Yevhenii Reizner : font in-memory DB
( svg )
- resvg by Yevhenii Reizner : SVG rendering
- railroad by Lukas Lueg : produce syntax diagrams as SVG
- railroad_dsl by Lukas Lueg : a language to produce syntax diagrams as SVG
( gif )
- gifski by ImageOptim : highest-quality GIF encoder based on pngquant.
- gif by image-rs : GIF en- and decoder written in Rust.
- webp-animation by Mika : a high-level Rust wrapper for decoding and encoding WebP animations.
( animation )
- rust-animation by Joone Hur : designed to implement a simple animated UI for embedded devices.
- anim by joylei : a framework independent animation library for rust.
- silver_animation by lenscas : simple and basic animation system for quicksilver.
- skeletal_animation by Sven Nilsen : a Rust library for data-driven skeletal animation.
( assets_3d )
- russimp by Jhonny Vargas : binding of assimp
- bvh_anim by George Burton : loader for bvh animation files
- gltf by gltf-rs : loader for glTF 2.0.
- mugltf by Andy K. S. Wong : minimal glTF 2.0 asset model loader.
- easy-gltf by Florian Amsallem : loader for glTF 2.0.
- dae-parser by Mario Carneiro : parser for the Collada (.dae) format.
- collada by PistonDevelopers : parsing Collada files.
- obj by Dzmitry Malyshau : basic Wavefront OBJ importer and exporter.
- obj-rs by Hyeon Kim : Wavefront .obj parser, handles both .obj and .mtl formats.
- tobj by Will Usher : simple and lightweight option for loading OBJ files.
- stl by Eric Holk : library for reading Stereo Lithography (STL) files.
- stl_io by Henning Meyer : reading and writing STL (STereoLithography) files.
- nom_stl by Clark Kampfe : binary and ASCII STL parser.
- iso-10303-parts by Junfeng Liu : generated reader code for ISO 10303 parts.
- iso-10303 by Junfeng Liu : reading STP/STEP CAD files.
- fs3ds by marius851000 : access the romfs of an unencrypted romfs.
- bevy_3ds by Ian Chamberlain : using Bevy on the 3DS.
( line )
- line_drawing by Ashley : line-drawing algorithms
- zeno by Chad Brokaw ( font ) : path rasterization library
- bezier-nd by Gavin J Stark : Bezier curve implementations using N-dimensional vectors
- makima_spline by GRASBOCK : An implementation of the modified akima spline interpolation
- Uniform Cubic Spline Interpolation & Inversion by Moritz Mœller : Simple uniform cubic spline evaluation and inversion
( plotting )
plotlib
by Matt Williams : generic data visualisation and plotting library for Rust.plotly
by Ioannis Giagkiozis a plotting library for Rust powered by Plotly.js.
( tesselation )
- cdshealpix-rust by CDS (Centre de Données astronomiques de Strasbourg) : Rust implementation of the HEALPix tesselation
- lyon::path by Nicolas Silva : Types and utilities to store, build and iterate over 2D paths
- tir by David Rasch : Library to create and draw periodic tilings of the plane
- geopattern by Suyash : Beautiful generative geometric background images from a string, a Rust implementation of geo_pattern from @jasonlong
- tessellation by Henning Meyer : 3d tessellation library
- plane-split by Servo : Plane splitting
( color )
- rgb by Kornel : RGB / RGBA
- palette by Erik Hedvall : color conversion
( simulation )
- gfx-ocean by Markus Siglreithmaier : ocean simulation
( sdk )
- steamworks by Aaro Perämaa : bindings to the SteamWorks SDK
( codec )
- ac-ffmpeg by Angelcam : rust wrapper for FFmpeg libraries.
- ffmpeg-next by Zhiming Wang : safe FFmpeg wrapper (FFmpeg 4 compatible fork of the ffmpeg crate).
- syeve by ZettaScript : simple yet efficient video encoding (lossless streaming codec).
( sound )
- symphonia by Philip Deljanov : audio decoding
- audrey by mitchmindtree : aggregator of audio format readers
( sound_gen )
- usfx by Thomas Versteeg : generate sound effects
- glicol by : live coding language to generate music
- service glicol by : live coding language to generate music as a service
( sound ) ( vst )
- vst2 by [https://github.com/overdrivenpotato](Marko Mijalkovic) : VST 2.4 API implementation
- easyvst by Boscop : helper crate for creating VST audio plugins
( sound ) ( shader )
- BoiTracker by Alexander Kraus ( midi ) : visualization of MIDI input
( sound ) ( midi )
- BoiTracker by Alexander Kraus ( shader ) : visualization of MIDI input
- midir by Patrick Reisert : cross-platform realtime MIDI processing
- wasabi by Leo : MIDI player
- xsynth by Leo : MIDI synth
( gis )
- osmpbf by Johannes Hofmann : reading the OpenStreetMap PBF file format
( game_design )
- grue by Graham Wihlidal : tools for building role-playing and adventure games
- bracket-lib by Herbert Wolverson : terminal-based game development
- HandsOnRust by Herbert Wolverson : samples from Hands-on Rust book
( game )
- veolren by Joshua Barretto : open world, open source voxel RPG
- chirperjax by Matthew Michelotti : simple 2D platformer
- sandbox by JMS55 : a sand simulation
( game ) ( toy )
- bevy_rider by Duncan : drawing with 2d physics
- roguelike by JMS55 : turn based dungeon exploration
- crossword by Paul Butler : crossword composer.
- name-needed by Dom Williams : Dwarf Fortress-like game
( specific )
- triangle-rs by Rod Conan : A Rust binder for the 2D mesh generator and Delaunay triangulator Triangle
- Hilbert 2D by Humberto Duarte : Functions for mapping between 1D and 2D space using the Hilbert curve, and its approximations
- truck-geometry by RICOS Co. Ltd. : geometrical structs: knot vector, B-spline and NURBS
- centerline.rs by eadf : Simple library for finding centerlines of 2D closed geometry
- ring-algorithm by Toru3 : algorithms on ring (Abstruct Algebra)
- Enterpolation by NicolasKlenert : A library for creating and computing interpolations, extrapolations and smoothing of generic data points
- libreda-shapes by LibrEDA : Basic data types and routines for computational geometry focused on VLSI chip design
( utility )
- landon by Chinedu Francis Nwafili : exporting Blender data
Name | WebGL 2 support | Size( wasm + js) |
---|---|---|
glow | Yes | 55 Kb |
three-d | Yes | 139 Kb |
pixels | WIP | 1 Mb |
limelight | Yes | 175 Kb |
speedy2d | Yes | 1 Mb |
luminance | Yes | 77 Kb |
gl-rs | Yes | Problem |
- ( renderer ) - renderers
- ( middleware ) - software of middle layer to leverage low-level functionality
- ( engine ) - game and web engines
- ( hid ) - human interface device
- ( shader ) - shader related
- ( geometry ) - geometry / mesh generation
- ( windowing ) - window creation and management
- ( network ) - network programming
- ( bevy ) - Bevy related
- ( webgpu ) - WebGPU related
- ( data_structures ) - data structures and algorithms for graphics, multimedia and game development
- ( plotting ) - plot data
- ( data_structure ) - data structures and algorithms
- ( tesselation ) - tesselation libs
- ( color ) - color related
- ( physics ) - physics
- ( simulation ) - simulation
- ( mem_man ) - memory management
- ( line ) - line related
- ( font ) - fonts related
- ( ecs ) - entity component systems
- ( svg ) - SVG related
- ( gif ) - GIF related
- ( animation ) - animating of drawing primitives
- ( img ) - image processing related
- ( assets_3d ) - 3D assets loading/saving
- ( codec ) - codecs and video processing
- ( sound ) - sound-related
- ( vst ) - virtual studio technology
- ( midi ) - MIDI related
- ( gis ) - geographic information system
- ( game_design ) - game design tools
- ( game ) - finished game
- ( toy ) - toy game
- ( specific ) - some specific graphics libraries
- ( utility ) - utilities