#low-level #gltf #extension #glb #nanoserde #low-level-reader

goth-gltf

A lightweight, low-level reader for gltf (and glb) files

3 releases

Uses new Rust 2024

0.1.2 Oct 8, 2025
0.1.1 Jul 3, 2023
0.1.0 Jul 3, 2023

#25 in Data formats

Download history 3/week @ 2025-07-13 4/week @ 2025-08-17 3/week @ 2025-08-24 3/week @ 2025-08-31 6/week @ 2025-09-07 6/week @ 2025-09-14 3/week @ 2025-09-28 149/week @ 2025-10-05 31/week @ 2025-10-12 6/week @ 2025-10-19 2/week @ 2025-10-26

188 downloads per month

MIT license

46KB
1.5K SLoC

goth-gltf

Goth-gltf aims to be a low-level, unopinionated reader for gltf files.

Basic example:

let filename = std::env::args().nth(1).unwrap();
let bytes = std::fs::read(&filename).unwrap();
let (gltf, _): (
    goth_gltf::Gltf<goth_gltf::default_extensions::Extensions>,
    _,
) = goth_gltf::Gltf::from_bytes(&bytes).unwrap();
println!("{:#?}", gltf);

In comparison with gltf-rs, it:

  • Represents the gltf JSON structure transparently
  • Uses nanoserde instead of serde
  • Supports a wider range of extensions
  • Has no code specific for loading images or reading attributes out of buffers

Extensions Implemented

  • KHR_lights_punctual
  • KHR_materials_emissive_strength
  • KHR_materials_ior
  • KHR_materials_sheen
  • KHR_materials_unlit
  • KHR_texture_basisu
  • KHR_texture_transform
  • KHR_materials_transmission
  • EXT_mesh_gpu_instancing
  • EXT_meshopt_compression
  • MSFT_lod
  • MSFT_screencoverage

License: MIT

Dependencies

~250KB