low-level fbx reader/writer library for Rust programming language. See also: https://github.com/lo48576/fbxcel
Rust
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
src
tests
.gitignore
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.adoc

README.adoc

fbx_direct, a low-level FBX parser for Rust

fbx_direct is an FBX library for Rust programming language. It is heavily inspired by Java Streaming API for XML (StAX) and xml-rs.

This library currently contains event reader for Binary FBX and event writer for ASCII/Binary FBX like xml-rs. ASCII FBX reader is not yet supported.

This library supports FBX 7.4 or later.

TODO

reader
  • ✓ Binary FBX parser

  • ❏ ASCII FBX parser

writer
  • ✓ Binary FBX writer

  • ✓ ASCII FBX writer

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Release Notes

0.6.3

New feature and improvements
Bump many dependencies

#2, thanks @VictorKoenders

0.6.2

No interface changes.

0.6.1

New feature and improvements
Bump byteorder crate version

0.5 → 0.6

0.6.0

Changes and deprecations
Changed interface of common::OwnedProperty::into_*()

Their return types are changed from Option<Foo> to Result<Foo, OwnedProperty>. Now they return Err(self) on conversion failure.

0.5.1

Fixes
Invalid left-brace '{' emission of FBX ascii writer

Sometimes '{' is missing in output data. Now this is fixed.

0.5.0

Changes and deprecations
writer::Error::DataTooLarge variant is added

When a data size (number of elements, byte offset, byte size, etc.) is too large for the format of writing file, this error will be emitted.

New feature and improvements
Support FBX 7.5

From FBX 7.5.0, specification of binary format changed a little. Now, binary reader/writer supports it. Of course, FBX 7.4 is also supported.

0.4.0

Changes and deprecations
Relicenced under MIT and Apache-2.0

See Issue #1.

Changed interface of common::{OwnedProperty,Property}::{get,into}_binary()

Now their type is fn get_binary(&self, from_string: bool) → Option<Cow<[u8]>> and fn into_binary(&self, from_string: bool) → Option<Vec<u8>>. Now the function tries to convert string to binary when from_string is true, and doesn’t try when false.

0.3.0

New feature and improvements
ASCII FBX writer became available

Note that some feature (such as ascii representation of node property of boolean vector) is unconfirmed and might be wrong.

writer::EmitterConfig::fbx_version member variable is added

This is used to specify FBX version to export. Default value is None. When None, it is automatically decided by writer if necessary. When it cannot be automatically decided, error will be emitted.

Changes and deprecations
writer::Error::InvalidOption variant is added

When writer is configured with invalid/inconsistent option or inconsistent writer event (e.g. event specifying different version as writer config) is given, this error will be emitted.

0.2.2

New feature and improvements
common::OwnedProperty::into_{bool,i16,i32,i64,f32,f64,vec_bool,vec_i32,vec_i64,vec_f32,vec_f64,string,binary} is added

get_foo converts value safely but not consuming self. into_foo converts value safely consuming self. When both can be used, into_foo is preferred because it is more efficient.

0.2.1

New feature and improvements
common::OwnedProperty::get_{bool,i16,i32,i64,f32,f64,vec_bool,vec_i32,vec_i64,vec_f32,vec_f64,string,binary} is added

get_foo converts value safely but not consuming self. Note that it cannot be used to conversion with loss of information (such as i64 to i32 or f32 to i64), but conversion between f32 and f64 is exceptionally allowed.

0.2.0

  • Binary FBX writer became available.

  • Major changes.