Skip to content

Rust implementation #1136

Description

@Filyus

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions