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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions