ruffle-rs.github.io
ruffle-rs.github.io copied to clipboard
Blog post idea: Rust dependency spotlight
A big part of Ruffle's success is from a perfect-storm of other crates from the Rust community. We could do a spotlight on some of our big dependencies that were key for us getting off the ground.
- wasm-bindgen: Made Wasm a first-class citizen in Rust
- wgpu: Portable GPU abstraction and gave us a head start for WebGPU on web
- naga: Transpile AGAL shaders, allowing Stage3D to function
- winit: Desktop app
- cpal: Desktop audio
- sample: Audio, resampling
- gc-arena: GC
- lyon: Allowed us easy tessellation of shapes for the wgpu/WebGL backends
- symphonia: MP3 parsing
- who else?
What about quick-xml?
Two of our video decoders are from NihAV: https://nihav.org/ (https://codecs.multimedia.cx/)
They are both fast, have no external dependencies, their code is clean (few unwrap
s), and the developer is knowledgeable (an FFmpeg contributor), responsive, and was kind enough to relicense these parts of his code for us.
wasm-opt
(Binaryen) is also nice.
egui
now that the Desktop app has a UI using it.