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 40 of 41 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
42 releases · first in 2016
0 releases in the last 12 months
see the full history below
Release timeline
42 releases · Nov 2016 to May 2024
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 42-
1.4.110 May 2024Release notes
Open source →Added
- New functions
animation::Channel::indexandanimation::Sampler::index. - New feature flag
allow_empty_textureto avoid required extension checks.
Fixed
- Fix
attempt to to subtract with overflow-panic insize_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
imageto0.25.0. - Validation will now fail if a glTF document requires extensions that are not supported by the crate.
Removed
- Feature
image_jpeg_rayonno longer needed, asimage 0.25.0now useszune-jpegfor jpeg decoding.
Changed
- Update
imageto0.25.0.
Removed
- Feature
image_jpeg_rayonno longer needed, asimage 0.25.0now useszune-jpegfor jpeg decoding.
- New functions
-
1.4.017 Dec 2023Release notes
Open source →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-jsoncrate have been widened to 64 bits. - Loading glTF on a 32 bit system containing offsets or sizes larger than
u32will result in a validation error.
Fixed
Gltf::from_readerno longer winds the reader back to offset zero.- Broken link in
Material::unlitdocumentation.
-
1.3.021 Aug 2023Release notes
Open source →Added
- Support for the
KHR_materials_emissive_strengthextension.
Fixed
Accessor::byte_offsetis now optional for sparse accessors.
- Support for the
-
1.2.008 Jun 2023Release notes
Open source →Added
- New functions
import_buffersandimport_imagesfor advanced import use cases.
Changed
Primitive::attributesnow usesBTreeMapinstead ofHashMapdeterministic serialization.
- New functions
-
1.1.001 Feb 2023Release notes
Open source →Fixed
- Fix relative file path imports with url encoded characters.
- Fix bounds calculation in export example.
-
1.0.030 Jan 2022Release notes
Open source →[1.0.0] - 2022-01-29
Added
- Support for the
KHR_materials_specularextension. - Support for the
KHR_materials_variantsextension. - Support for the
KHR_materials_volumeextension. ExactSizeIteratorimplementation forJointsiterator.
Changed
- The
mesh.primitivesproperty is now always serialized.
Fixed
- Incorrect implementation of
Normalize<u16>andNormalize<f32>foru16.
Release notes
Open source →Added
- Support for the
KHR_materials_specularextension. - Support for the
KHR_materials_variantsextension. - Support for the
KHR_materials_volumeextension. ExactSizeIteratorimplementation forJointsiterator.
Changed
- The
mesh.primitivesproperty is now always serialized.
Fixed
- Incorrect implementation of
Normalize<u16>andNormalize<f32>foru16.
- Support for the
-
0.16.013 May 2021Release notes
Open source →Added
- Support for the
KHR_texture_transformextension. - Support for the
KHR_materials_transmission_iorextension.
Changed
Material::alpha_cutoffis now optional.
Fixed
- URIs with embedded data failing to import when using
import_slice. - Serialization of empty primitives object being skipped.
- Support for the
-
0.15.229 Mar 2020Release notes
Open source →Changed
- All features are now exposed in the online documentation.
- Primary iterators now implement
Iterator::nthexplicitly for improved performance.
Fixed
- Compiler warnings regarding deprecation of
std::error::Error::description.
-
0.15.115 Mar 2020Release notes
Open source →Added
- New feature
guess_mime_typewhich, as the name suggests, attempts to guess the MIME type of an image if it doesn't exactly match the standard.
Changed
base64updated to0.11.byteorderupdated to1.3.imageupdated to0.23.0.Formathas additional variants for 16-bit pixel formats.
Fixed
- Off-by-one error when reading whole files incurring a gratuitous reallocation.
- New feature
-
0.15.018 Jan 2020Release notes
Open source →2020-01-18
Added
- Support for the
KHR_materials_unlitextension, which adds anunlitfield
toMaterial. ExactSizeIteratorimplementations for accessor iterators.
Fixed
- Some lifetimes for accessing fields (e.g.
Node::children) have been relaxed. Accessor::buffer_viewis now optional for the benefit of sparse accessors.
Removed
animation::Interpolation::CatmullRomSpline
Release notes
Open source →Added
- Support for the
KHR_materials_unlitextension, which adds anunlitfield toMaterial. ExactSizeIteratorimplementations for accessor iterators.
Fixed
- Some lifetimes for accessing fields (e.g.
Node::children) have been relaxed. Accessor::buffer_viewis now optional for the benefit of sparse accessors.
Removed
animation::Interpolation::CatmullRomSpline
- Support for the
-
0.14.006 Oct 2019Release notes
Open source →2019-10-06
Added
import_slicefunction.CloneandDebugimplementations forMaterial.accessor::util::SparseIterandaccessor::util::SparseIndicesIterwhich
iterate over items and indices in sparse accessors respectively.
Changed
accessor::util::Iteris now an enum; sparse accessors are now read correctly.- The original version of
accessor::util::Iterhas been renamed asItemIter.
Release notes
Open source →Added
import_slicefunction.CloneandDebugimplementations forMaterial.accessor::util::SparseIterandaccessor::util::SparseIndicesIterwhich iterate over items and indices in sparse accessors respectively.
Changed
accessor::util::Iteris now an enum; sparse accessors are now read correctly.- The original version of
accessor::util::Iterhas been renamed asItemIter.
-
0.13.027 Jul 2019Release notes
Open source →2019-07-27
Added
- Support for the
KHR_lights_punctualextension. gltf-roundtripexample.
Changed
- Renamed
validate_minimallyasvalidate. - Removed dependency on
cgmath.
Fixed
- Incorrect version in README instructions.
- Compiler warnings.
Removed
- Trait function
Validate::validate_completelyand its implementations.
Release notes
Open source →Added
- Support for the
KHR_lights_punctualextension. gltf-roundtripexample.
Changed
- Renamed
validate_minimallyasvalidate. - Removed dependency on
cgmath.
Fixed
- Incorrect version in README instructions.
- Compiler warnings.
Removed
- Trait function
Validate::validate_completelyand its implementations.
- Support for the
-
0.12.021 Apr 2019Release notes
Open source →2019-04-21
Added
- New image format variants
B8G8R8andB8G8R8A8. - New export example.
Changed
- The crate now builds with Rust 2018 edition.
Extrasare now exposed asRawValue.Indexnow implementsCopy.- 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
Accessorwhich was a cause of poor performance. - Borrow checker complaint regarding
Glb::from_reader.
Release notes
Open source →Added
- New image format variants
B8G8R8andB8G8R8A8. - New export example.
Changed
- The crate now builds with Rust 2018 edition.
Extrasare now exposed asRawValue.Indexnow implementsCopy.- 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
Accessorwhich was a cause of poor performance. - Borrow checker complaint regarding
Glb::from_reader.
- New image format variants
-
0.11.321 Feb 2019Release notes
Open source →2019-02-21
Added
- New function
gltf_json::Index::newfor export. - Support for the
KHR_materials_pbrSpecularGlossinessextension. - Extra
EqandPartialEqimplementations.
Fixed
Accessor::minis no longer serialized ifNone.Extras::_allow_unknown_fieldsis no longer serialized.bufferView.byteOffsetis now optional.- Node translation/rotation/scale values are now optional.
- Removed serialization of some default values.
extras::Voidis no longer serialized.
Release notes
Open source →Added
- New function
gltf_json::Index::newfor export. - Support for the
KHR_materials_pbrSpecularGlossinessextension. - Extra
EqandPartialEqimplementations.
Fixed
Accessor::minis no longer serialized ifNone.Extras::_allow_unknown_fieldsis no longer serialized.bufferView.byteOffsetis now optional.- Node translation/rotation/scale values are now optional.
- Removed serialization of some default values.
extras::Voidis no longer serialized.
- New function
-
0.11.217 Jul 2018Release notes
Open source →2018-07-08
Fixed
- JSON chunk padding is now padded with spaces (0x20) rather than zeros.
Noneis no longer serialized.Vecis no longer serialized when empty.
Release notes
Open source →Fixed
- JSON chunk padding is now padded with spaces (0x20) rather than zeros.
Noneis no longer serialized.Vecis no longer serialized when empty.
-
0.11.110 Jun 2018Release notes
Open source →2018-06-10
Added
payloadfield inGltfin order to handle binary glTF directly.Error::Ioenum variant.Gltf::from_reader_without_validationandGltf::from_slice_without_validation.- All functionality from the
gltf-utilscrate, feature gated with the new
utilsfeature. - Most functionality from the
gltf-importercrate, feature gated with the
newimportfeature. enum Urito represent uniform resource locators.
Changed
fn Gltf::from_*now imports binary glTF as well as standard glTF.fn Gltf::from_readernow requiresreaderto implementstd::io::Seek.Buffer::urinow returnsNonein the case of binary glTF payload instead
of the magic string"#bin".- The
POSITIONattribute is now required by all mesh primitives. - Several renames:
glb→binary.Error::Glb→Error::Binary.TrsProperty→Property.InterpolationAlgorithm→Interpolation.Target::path→Target::property.Primitive::position_bounds→Primitive::bounding_box.
- The
namesfeature is now enabled by default, along withutilsand
import. Rationale: Pareto principle.
Fixed
- Data structures in
gltf_jsonnow implementSerialize.
Removed
fn Gltf::from_str-- usefn Gltf::from_sliceinstead.fn Gltf::from_value-- no longer supported.fn gltf::is_binary-- useslice.starts_with("glTF")instead.struct Unvalidated-- replaced withenum Validation.crate gltf-importer-- no longer supported.Node::matrix-- usetransform().matrix()instead.Node::rotation-- usetransform().decomposed()instead.- All hidden
as_jsonfunctions -- no longer supported.
Release notes
Open source →Added
payloadfield inGltfin order to handle binary glTF directly.Error::Ioenum variant.Gltf::from_reader_without_validationandGltf::from_slice_without_validation.- All functionality from the
gltf-utilscrate, feature gated with the newutilsfeature. - Most functionality from the
gltf-importercrate, feature gated with the newimportfeature. enum Urito represent uniform resource locators.
Changed
fn Gltf::from_*now imports binary glTF as well as standard glTF.fn Gltf::from_readernow requiresreaderto implementstd::io::Seek.Buffer::urinow returnsNonein the case of binary glTF payload instead of the magic string"#bin".- The
POSITIONattribute is now required by all mesh primitives. - Several renames:
glb→binary.Error::Glb→Error::Binary.TrsProperty→Property.InterpolationAlgorithm→Interpolation.Target::path→Target::property.Primitive::position_bounds→Primitive::bounding_box.
- The
namesfeature is now enabled by default, along withutilsandimport. Rationale: Pareto principle.
Fixed
- Data structures in
gltf_jsonnow implementSerialize.
Removed
fn Gltf::from_str-- usefn Gltf::from_sliceinstead.fn Gltf::from_value-- no longer supported.fn gltf::is_binary-- useslice.starts_with("glTF")instead.struct Unvalidated-- replaced withenum Validation.crate gltf-importer-- no longer supported.Node::matrix-- usetransform().matrix()instead.Node::rotation-- usetransform().decomposed()instead.- All hidden
as_jsonfunctions -- no longer supported.
-
0.11.010 Jun 2018 withdrawn -
0.10.105 Mar 2018 -
0.10.004 Mar 2018Release notes
Open source →2018-03-04
Added
ChannelIterators.
Changed
- Rework of GLB parser and
AccessorIterin order to reduceunsafecode and
to allow loading of binary glTF data on non-little-endian machines. - More descriptive errors in the
gltfandgltf_importercrates. Gltf::skip_validationis no longer markedunsafe.
Release notes
Open source →Added
ChannelIterators.
Changed
- Rework of GLB parser and
AccessorIterin order to reduceunsafecode and to allow loading of binary glTF data on non-little-endian machines. - More descriptive errors in the
gltfandgltf_importercrates. Gltf::skip_validationis no longer markedunsafe.
-
0.9.328 Oct 2017 -
0.9.210 Sep 2017 -
0.9.105 Sep 2017Release notes
Open source →Added
scene::Transformtype, returned byNode::transform.MorphTargettype and a correspondingMorphTargetsiterator.Gltf::from_glbfunction.Gltf::default_scenefunction.
Changed
as_jsonfunctions are now hidden from the documentation.scene::Childrenis bound to the lifetime ofGltfinstead its parentNode- Documentation has been improved across the crate.
Removed
rootmodule.- Default constructors for
Materialandtexture::Sampler.
Deprecated
Node::matrix/translation/rotation/scalein favour ofNode::transform.jsonmodule.
-
0.9.027 Aug 2017Release notes
Open source →Added
- New
gltf-utilscrate, which removes the need for theLoadedwrapper struct. - New
Attributesiterator, which visits all vertex attributes of aPrimitive. - New
glbmodule, containing functions for parsing .glb (binary glTF) files. - New
is_binaryfunction, which tests for the glTF magic string. - New 'explicit' validation strategy with the
gltf::Unvalidatedtype. - New
Boundstype describing the minimum and maximum values of accessors. - New
Accessor::position_boundsconvenience function. Info,NormalTexture, andOcclusionTexturenow implementAsRef<Texture>.
Removed
- Removed the
Loadedstruct in favour of new traits in thegltf-utilscrate.
- New
-
0.8.626 Aug 2017 -
0.8.511 Aug 2017Release notes
Open source →Changed
- Fixed incorrect buffer view slicing from accessors.
- Wrapper struct constructors now use
pub(crate)instead of#[doc(hidden)]. - Hence the crate now requires
rustcversion 1.18 or above to build.
-
0.8.410 Aug 2017Release notes
Open source →Added
- Added the
gltf-treeexample which displays the node heirarchies of scenes.
- Added the
-
0.8.310 Aug 2017 -
0.8.209 Aug 2017Release notes
Open source →Removed
- Removed broken link to
gltf-importerin the crate documentation.
- Removed broken link to
-
0.8.109 Aug 2017 -
0.8.009 Aug 2017Release notes
Open source →Added
- New
Loadedtype, which providesglTFobjects with buffer data. - New
gltf-jsoncrate which replaces thejsonmodule. This is intended to improve build times. - Exported
namesandextrasfeatures from the newgltf-jsoncrate.
Changed
- Redesign of the
Sourcetrait so that it no longer performs I/O.
- New
-
0.7.028 Jul 2017Release notes
Open source →Added
Image::datanow returns aDynamicImage, allowing for post-processing.
-
0.6.115 Jul 2017Nothing published for this version
-
0.6.015 Jul 2017Release notes
Open source →Added
- New wrapper interface.
Sourcetrait, which allows for customizing the import process.- Reference
Sourcetrait implementation, namelyFromPath, that can read from the file system and decode embedded base64 data URIs. - Support for binary glTF.
Validatetrait, which validates glTF JSON metadata.Importstruct which drives the asynchronous loading of glTF data.- "Poor man's zero-copy deserialization".
Changed
- Moved all extension data structures into a new
extensionsmodule. - Made the
Gettrait behave the same as theTryGettrait.
Removed
- Removed the
v1module, as the crate no longer supports glTF 1.0. - Removed the
TryGettrait in favour of the redesignedGettrait.
-
0.5.010 Jun 2017Release notes
Open source →Added
- New
v2module, containing all glTF 2.0 data structures. - Initial implementation of the glTF 2.0 data structures.
- New
-
0.4.106 May 2017 -
0.4.024 Mar 2017Release notes
Open source →Added
- New
v1module, containing all glTF 1.0 data structures. - glTF objects are now categorised in submodules.
- Complete implementation of the glTF 1.0 data structures.
Removed
- Removed
glcrate dependency.
- New
-
0.3.117 Mar 2017 -
0.3.016 Feb 2017Release notes
Open source →Changed
- Allowed the crate to build on the latest stable
rustc(1.15) using the newserdefrontend, i.e. with the serdeproc_macro.
- Allowed the crate to build on the latest stable
-
0.2.117 Nov 2016Release notes
Open source →Changed
- Allowed the crate to build on the latest stable
rustc(1.14) using theserde_codegencrate.
- Allowed the crate to build on the latest stable
-
0.2.015 Nov 2016 -
0.1.113 Nov 2016 -
0.1.013 Nov 2016