Rust implementation
- Dominant language
- C++
- Stars
- 7.5k
- Forks
- 1.1k
- Avg merge
- 47m
- Merged PRs (30d)
- 1
Description
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.
Contributor guide
Assessment
This issue has not been assessed yet.