Hello everyone! It took me about a month of vibe coding in my spare time to create the Draco library entirely in Rust. It wasn't easy and required a lot of patience, but I'm finally happy to share the code with everyone:
https://github.com/Filyus/draco-rust
The current Rust crates live here:
I also wrote WASM modules and a sample web application for conversion:
https://github.com/Filyus/draco-rust/tree/main/web
Current optimized WASM size comparison:
| Module |
Raw |
gzip |
What is included |
gltf_reader_bg.wasm |
228.8 KiB |
94.2 KiB |
Reads .gltf/.glb files, parses glTF JSON with serde_json, handles GLB containers, and decodes KHR_draco_mesh_compression payloads. |
Google draco_decoder.wasm 1.5.7 |
279.2 KiB |
86.5 KiB |
General Draco decoder for raw Draco buffers. No glTF JSON or GLB container handling. |
Google draco_decoder_gltf.wasm 1.5.7 |
188.1 KiB |
62.0 KiB |
Smaller Draco decoder subset for glTF KHR_draco_mesh_compression payloads. It decodes the extension's bufferView data but does not read .gltf/.glb files. |
draco-core, draco-io, and draco-gltf are now published on crates.io, with CI, fuzzing, docs.rs builds, package verification, and GitHub release tags in place.
Hello everyone! It took me about a month of vibe coding in my spare time to create the Draco library entirely in Rust. It wasn't easy and required a lot of patience, but I'm finally happy to share the code with everyone:
https://github.com/Filyus/draco-rust
The current Rust crates live here:
I also wrote WASM modules and a sample web application for conversion:
https://github.com/Filyus/draco-rust/tree/main/web
Current optimized WASM size comparison:
gltf_reader_bg.wasm.gltf/.glbfiles, parses glTF JSON withserde_json, handles GLB containers, and decodesKHR_draco_mesh_compressionpayloads.draco_decoder.wasm1.5.7draco_decoder_gltf.wasm1.5.7KHR_draco_mesh_compressionpayloads. It decodes the extension's bufferView data but does not read.gltf/.glbfiles.draco-core,draco-io, anddraco-gltfare now published on crates.io, with CI, fuzzing, docs.rs builds, package verification, and GitHub release tags in place.