PackageTrack
Sign in Get early access

gltf-json

JSON parsing for the gltf crate

1.4.1 9.4M downloads/mo #3221 most downloaded on crates.io gltf-rs/gltf

What this package is like to depend on

Last release 2 years ago

no release in 18 months

Release timing varies

gaps range from 2 weeks to 1.1 years

Nearly every release is documented

notes for 24 of 24 stable releases

Nothing withdrawn

no release was ever pulled

9 years old

24 releases · first in 2017

0 releases in the last 12 months

see the full history below

Release timeline

24 releases · Aug 2017 to May 2024
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 24
  1. 1.4.1 10 May 2024
    Release notes

    Added

    • New functions animation::Channel::index and animation::Sampler::index.
    • New feature flag allow_empty_texture to avoid required extension checks.

    Fixed

    • Fix attempt to to subtract with overflow-panic in size_hint() of sparse accessor when collecting items.
    • Fix incorrect values returned from size_hint() in sparse accessor.
    • Add support to read items from sparse accessor without base buffer view.

    Changed

    • Update image to 0.25.0.
    • Validation will now fail if a glTF document requires extensions that are not supported by the crate.

    Removed

    • Feature image_jpeg_rayon no longer needed, as image 0.25.0 now uses zune-jpeg for jpeg decoding.

    Changed

    • Update image to 0.25.0.

    Removed

    • Feature image_jpeg_rayon no longer needed, as image 0.25.0 now uses zune-jpeg for jpeg decoding.
    Open source →
  2. 1.4.0 17 Dec 2023
    Release notes

    Added

    • New API for reading arbitary extension data.
    • Interval improvements to prevent panics on 32 bit systems when loading large glTF files.

    Changed

    • Offsets and sizes in the gltf-json crate have been widened to 64 bits.
    • Loading glTF on a 32 bit system containing offsets or sizes larger than u32 will result in a validation error.

    Fixed

    • Gltf::from_reader no longer winds the reader back to offset zero.
    • Broken link in Material::unlit documentation.
    Open source →
  3. 1.3.0 21 Aug 2023
    Release notes

    Added

    • Support for the KHR_materials_emissive_strength extension.

    Fixed

    • Accessor::byte_offset is now optional for sparse accessors.
    Open source →
  4. 1.2.0 08 Jun 2023
    Release notes

    Added

    • New functions import_buffers and import_images for advanced import use cases.

    Changed

    • Primitive::attributes now uses BTreeMap instead of HashMap deterministic serialization.
    Open source →
  5. 1.1.0 01 Feb 2023
    Release notes

    Fixed

    • Fix relative file path imports with url encoded characters.
    • Fix bounds calculation in export example.
    Open source →
  6. 1.0.0 30 Jan 2022
    Release notes

    [1.0.0] - 2022-01-29

    Added

    • Support for the KHR_materials_specular extension.
    • Support for the KHR_materials_variants extension.
    • Support for the KHR_materials_volume extension.
    • ExactSizeIterator implementation for Joints iterator.

    Changed

    • The mesh.primitives property is now always serialized.

    Fixed

    • Incorrect implementation of Normalize<u16> and Normalize<f32> for u16.
    Open source →
    Release notes

    Added

    • Support for the KHR_materials_specular extension.
    • Support for the KHR_materials_variants extension.
    • Support for the KHR_materials_volume extension.
    • ExactSizeIterator implementation for Joints iterator.

    Changed

    • The mesh.primitives property is now always serialized.

    Fixed

    • Incorrect implementation of Normalize<u16> and Normalize<f32> for u16.
    Open source →
  7. 0.16.0 13 May 2021
    Release notes

    Added

    • Support for the KHR_texture_transform extension.
    • Support for the KHR_materials_transmission_ior extension.

    Changed

    • Material::alpha_cutoff is now optional.

    Fixed

    • URIs with embedded data failing to import when using import_slice.
    • Serialization of empty primitives object being skipped.
    Open source →
  8. 0.15.2 29 Mar 2020
    Release notes

    Changed

    • All features are now exposed in the online documentation.
    • Primary iterators now implement Iterator::nth explicitly for improved performance.

    Fixed

    • Compiler warnings regarding deprecation of std::error::Error::description.
    Open source →
  9. 0.15.1 15 Mar 2020
    Release notes

    Added

    • New feature guess_mime_type which, as the name suggests, attempts to guess the MIME type of an image if it doesn't exactly match the standard.

    Changed

    • base64 updated to 0.11.
    • byteorder updated to 1.3.
    • image updated to 0.23.0.
    • Format has additional variants for 16-bit pixel formats.

    Fixed

    • Off-by-one error when reading whole files incurring a gratuitous reallocation.
    Open source →
  10. 0.15.0 18 Jan 2020
    Release notes

    2020-01-18

    Added

    • Support for the KHR_materials_unlit extension, which adds an unlit field
      to Material.
    • ExactSizeIterator implementations for accessor iterators.

    Fixed

    • Some lifetimes for accessing fields (e.g. Node::children) have been relaxed.
    • Accessor::buffer_view is now optional for the benefit of sparse accessors.

    Removed

    • animation::Interpolation::CatmullRomSpline
    Open source →
    Release notes

    Added

    • Support for the KHR_materials_unlit extension, which adds an unlit field to Material.
    • ExactSizeIterator implementations for accessor iterators.

    Fixed

    • Some lifetimes for accessing fields (e.g. Node::children) have been relaxed.
    • Accessor::buffer_view is now optional for the benefit of sparse accessors.

    Removed

    • animation::Interpolation::CatmullRomSpline
    Open source →
  11. 0.14.0 06 Oct 2019
    Release notes

    2019-10-06

    Added

    • import_slice function.
    • Clone and Debug implementations for Material.
    • accessor::util::SparseIter and accessor::util::SparseIndicesIter which
      iterate over items and indices in sparse accessors respectively.

    Changed

    • accessor::util::Iter is now an enum; sparse accessors are now read correctly.
    • The original version of accessor::util::Iter has been renamed as ItemIter.
    Open source →
    Release notes

    Added

    • import_slice function.
    • Clone and Debug implementations for Material.
    • accessor::util::SparseIter and accessor::util::SparseIndicesIter which iterate over items and indices in sparse accessors respectively.

    Changed

    • accessor::util::Iter is now an enum; sparse accessors are now read correctly.
    • The original version of accessor::util::Iter has been renamed as ItemIter.
    Open source →
  12. 0.13.0 27 Jul 2019
    Release notes

    2019-07-27

    Added

    • Support for the KHR_lights_punctual extension.
    • gltf-roundtrip example.

    Changed

    • Renamed validate_minimally as validate.
    • Removed dependency on cgmath.

    Fixed

    • Incorrect version in README instructions.
    • Compiler warnings.

    Removed

    • Trait function Validate::validate_completely and its implementations.
    Open source →
    Release notes

    Added

    • Support for the KHR_lights_punctual extension.
    • gltf-roundtrip example.

    Changed

    • Renamed validate_minimally as validate.
    • Removed dependency on cgmath.

    Fixed

    • Incorrect version in README instructions.
    • Compiler warnings.

    Removed

    • Trait function Validate::validate_completely and its implementations.
    Open source →
  13. 0.12.0 21 Apr 2019
    Release notes

    2019-04-21

    Added

    • New image format variants B8G8R8 and B8G8R8A8.
    • New export example.

    Changed

    • The crate now builds with Rust 2018 edition.
    • Extras are now exposed as RawValue.
    • Index now implements Copy.
    • Meshes will no longer report a zero byte stride.
    • Updated the following dependendies:
      • approx
      • base64
      • cgmath
      • image
      • lazy_static
      • proc_macro2
      • quote
      • syn

    Fixed

    • Removed an unused field in Accessor which was a cause of poor performance.
    • Borrow checker complaint regarding Glb::from_reader.
    Open source →
    Release notes

    Added

    • New image format variants B8G8R8 and B8G8R8A8.
    • New export example.

    Changed

    • The crate now builds with Rust 2018 edition.
    • Extras are now exposed as RawValue.
    • Index now implements Copy.
    • Meshes will no longer report a zero byte stride.
    • Updated the following dependendies:
      • approx
      • base64
      • cgmath
      • image
      • lazy_static
      • proc_macro2
      • quote
      • syn

    Fixed

    • Removed an unused field in Accessor which was a cause of poor performance.
    • Borrow checker complaint regarding Glb::from_reader.
    Open source →
  14. 0.11.3 21 Feb 2019
    Release notes

    2019-02-21

    Added

    • New function gltf_json::Index::new for export.
    • Support for the KHR_materials_pbrSpecularGlossiness extension.
    • Extra Eq and PartialEq implementations.

    Fixed

    • Accessor::min is no longer serialized if None.
    • Extras::_allow_unknown_fields is no longer serialized.
    • bufferView.byteOffset is now optional.
    • Node translation/rotation/scale values are now optional.
    • Removed serialization of some default values.
    • extras::Void is no longer serialized.
    Open source →
    Release notes

    Added

    • New function gltf_json::Index::new for export.
    • Support for the KHR_materials_pbrSpecularGlossiness extension.
    • Extra Eq and PartialEq implementations.

    Fixed

    • Accessor::min is no longer serialized if None.
    • Extras::_allow_unknown_fields is no longer serialized.
    • bufferView.byteOffset is now optional.
    • Node translation/rotation/scale values are now optional.
    • Removed serialization of some default values.
    • extras::Void is no longer serialized.
    Open source →
  15. 0.11.2 17 Jul 2018
    Release notes

    2018-07-08

    Fixed

    • JSON chunk padding is now padded with spaces (0x20) rather than zeros.
    • None is no longer serialized.
    • Vec is no longer serialized when empty.
    Open source →
    Release notes

    Fixed

    • JSON chunk padding is now padded with spaces (0x20) rather than zeros.
    • None is no longer serialized.
    • Vec is no longer serialized when empty.
    Open source →
  16. 0.11.1 10 Jun 2018
    Release notes

    2018-06-10

    Added

    • payload field in Gltf in order to handle binary glTF directly.
    • Error::Io enum variant.
    • Gltf::from_reader_without_validation and Gltf::from_slice_without_validation.
    • All functionality from the gltf-utils crate, feature gated with the new
      utils feature.
    • Most functionality from the gltf-importer crate, feature gated with the
      new import feature.
    • enum Uri to represent uniform resource locators.

    Changed

    • fn Gltf::from_* now imports binary glTF as well as standard glTF.
    • fn Gltf::from_reader now requires reader to implement std::io::Seek.
    • Buffer::uri now returns None in the case of binary glTF payload instead
      of the magic string "#bin".
    • The POSITION attribute is now required by all mesh primitives.
    • Several renames:
      • glbbinary.
      • Error::GlbError::Binary.
      • TrsPropertyProperty.
      • InterpolationAlgorithmInterpolation.
      • Target::pathTarget::property.
      • Primitive::position_boundsPrimitive::bounding_box.
    • The names feature is now enabled by default, along with utils and
      import. Rationale: Pareto principle.

    Fixed

    • Data structures in gltf_json now implement Serialize.

    Removed

    • fn Gltf::from_str -- use fn Gltf::from_slice instead.
    • fn Gltf::from_value -- no longer supported.
    • fn gltf::is_binary -- use slice.starts_with("glTF") instead.
    • struct Unvalidated -- replaced with enum Validation.
    • crate gltf-importer -- no longer supported.
    • Node::matrix -- use transform().matrix() instead.
    • Node::rotation -- use transform().decomposed() instead.
    • All hidden as_json functions -- no longer supported.
    Open source →
    Release notes

    Added

    • payload field in Gltf in order to handle binary glTF directly.
    • Error::Io enum variant.
    • Gltf::from_reader_without_validation and Gltf::from_slice_without_validation.
    • All functionality from the gltf-utils crate, feature gated with the new utils feature.
    • Most functionality from the gltf-importer crate, feature gated with the new import feature.
    • enum Uri to represent uniform resource locators.

    Changed

    • fn Gltf::from_* now imports binary glTF as well as standard glTF.
    • fn Gltf::from_reader now requires reader to implement std::io::Seek.
    • Buffer::uri now returns None in the case of binary glTF payload instead of the magic string "#bin".
    • The POSITION attribute is now required by all mesh primitives.
    • Several renames:
      • glbbinary.
      • Error::GlbError::Binary.
      • TrsPropertyProperty.
      • InterpolationAlgorithmInterpolation.
      • Target::pathTarget::property.
      • Primitive::position_boundsPrimitive::bounding_box.
    • The names feature is now enabled by default, along with utils and import. Rationale: Pareto principle.

    Fixed

    • Data structures in gltf_json now implement Serialize.

    Removed

    • fn Gltf::from_str -- use fn Gltf::from_slice instead.
    • fn Gltf::from_value -- no longer supported.
    • fn gltf::is_binary -- use slice.starts_with("glTF") instead.
    • struct Unvalidated -- replaced with enum Validation.
    • crate gltf-importer -- no longer supported.
    • Node::matrix -- use transform().matrix() instead.
    • Node::rotation -- use transform().decomposed() instead.
    • All hidden as_json functions -- no longer supported.
    Open source →
  17. 0.11.0 10 Jun 2018
    Release notes

    Yanked

    Open source →
  18. 0.10.1 05 Mar 2018
    Release notes

    2018-03-05

    Fixed

    • gltf_utils::AccessorIter::new is marked pub again.
    Open source →
    Release notes

    Fixed

    • gltf_utils::AccessorIter::new is marked pub again.
    Open source →
  19. 0.10.0 04 Mar 2018
    Release notes

    2018-03-04

    Added

    • ChannelIterators.

    Changed

    • Rework of GLB parser and AccessorIter in order to reduce unsafe code and
      to allow loading of binary glTF data on non-little-endian machines.
    • More descriptive errors in the gltf and gltf_importer crates.
    • Gltf::skip_validation is no longer marked unsafe.
    Open source →
    Release notes

    Added

    • ChannelIterators.

    Changed

    • Rework of GLB parser and AccessorIter in order to reduce unsafe code and to allow loading of binary glTF data on non-little-endian machines.
    • More descriptive errors in the gltf and gltf_importer crates.
    • Gltf::skip_validation is no longer marked unsafe.
    Open source →
  20. 0.9.3 28 Oct 2017
    Release notes

    Fixed

    • gltf_utils::PrimitiveIterators::joints_u16 implementation.
    Open source →
  21. 0.9.2 10 Sep 2017
    Release notes

    Fixed

    • Incorrect implementation of Transform::decomposed (issue #99)
    Open source →
  22. 0.9.1 05 Sep 2017
    Release notes

    Added

    • scene::Transform type, returned by Node::transform.
    • MorphTarget type and a corresponding MorphTargets iterator.
    • Gltf::from_glb function.
    • Gltf::default_scene function.

    Changed

    • as_json functions are now hidden from the documentation.
    • scene::Children is bound to the lifetime of Gltf instead its parent Node
    • Documentation has been improved across the crate.

    Removed

    • root module.
    • Default constructors for Material and texture::Sampler.

    Deprecated

    • Node::matrix/translation/rotation/scale in favour of Node::transform.
    • json module.
    Open source →
  23. 0.9.0 27 Aug 2017
    Release notes

    Added

    • New gltf-utils crate, which removes the need for the Loaded wrapper struct.
    • New Attributes iterator, which visits all vertex attributes of a Primitive.
    • New glb module, containing functions for parsing .glb (binary glTF) files.
    • New is_binary function, which tests for the glTF magic string.
    • New 'explicit' validation strategy with the gltf::Unvalidated type.
    • New Bounds type describing the minimum and maximum values of accessors.
    • New Accessor::position_bounds convenience function.
    • Info, NormalTexture, and OcclusionTexture now implement AsRef<Texture>.

    Removed

    • Removed the Loaded struct in favour of new traits in the gltf-utils crate.
    Open source →
  24. 0.1.0 09 Aug 2017
    Release notes

    Added

    • Initial (incomplete) glTF 1.0 implementation.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive