draco-oxide
draco-oxide is a high-performance Rust re-write of Google’s Draco 3D-mesh compression library, featuring efficient streaming I/O and seamless WebAssembly integration.
Status: Alpha – Encoder is functional; decoder implementation is work‑in‑progress.
Features
| Component | Alpha | Beta Roadmap |
|---|---|---|
| Mesh Encoder | ✅ | Performance optimization |
| Mesh Decoder | ❌ | ✅ |
| glTF Transcoder (basic) | ✅ | Animation and many more extensions |
Encoder Highlights
- Triangle‑mesh compression with configurable speed/ratio presets.
- Basic glTF transcoder (
*.gltfor*.glb→*.glbwith mesh buffer compressed via KHR_draco_mesh_compression extension). - Pure‑Rust implementation.
no_std+alloccompatible; builds to WASM32, x86_64, aarch64, and more.
Decoder (Coming Soon)
Planned for the beta milestone.
Getting Started
Add to Your Project
draco-oxide = "0.1.0-alpha.1"
Example: Encode an obj file.
use ;
use ConfigType;
use Write;
See the draco-oxide/examples directory for more.
CLI
# compress input.obj into a draco file output.drc
# transcode input.glb into a draco compressed glb file output.glb as specified
# in KHR_draco_mesh_compression extension.
Roadmap to Beta
- Decoder Support.
- Complete glTF support.
Acknowledgements
- Google Draco – original C++ implementation
Contact
Re:Earth core committers: community@reearth.io
License
Licensed under either (at your discretion):
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)