Rust implementation
Author: FilyusCreated Jan 9, 2026Updated Jul 23, 2026
Labelsenhancement
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:
- https://github.com/Filyus/draco-rust/tree/main/crates/draco-core
- https://github.com/Filyus/draco-rust/tree/main/crates/draco-io
- https://github.com/Filyus/draco-rust/tree/main/crates/draco-gltf
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.
Source: google/draco