42 releases

0.7.4 Sep 28, 2024
0.7.1 Mar 30, 2023
0.7.0 Sep 30, 2021
0.6.3 Jun 22, 2021
0.0.5 Dec 28, 2014

#4 in Data formats

Download history 3940/week @ 2024-08-04 7246/week @ 2024-08-11 8540/week @ 2024-08-18 13795/week @ 2024-08-25 14385/week @ 2024-09-01 14922/week @ 2024-09-08 15746/week @ 2024-09-15 21760/week @ 2024-09-22 17105/week @ 2024-09-29 16303/week @ 2024-10-06 13785/week @ 2024-10-13 12119/week @ 2024-10-20 16833/week @ 2024-10-27 12898/week @ 2024-11-03 10227/week @ 2024-11-10 13688/week @ 2024-11-17

53,765 downloads per month
Used in 17 crates (12 directly)

Apache-2.0 OR MIT

775KB
1K SLoC

obj-rs version

Wavefront .obj parser for Rust. It handles both .obj and .mtl formats. See Documentation for the further details.

[dependencies]
obj-rs = "0.7"
use std::fs::File;
use std::io::BufReader;
use obj::{load_obj, Obj};

let input = BufReader::new(File::open("tests/fixtures/dome.obj"))?;
let model: Obj = load_obj(input)?;

// Do whatever you want
model.vertices;
model.indices;
Rendered image of cute Rilakkuma

 

Glium support

obj-rs supports glium out of the box.

[dependencies]
glium = "0.26"
obj-rs = { version = "0.6", features = ["glium"] }
use std::fs::File;
use std::io::BufReader;
use obj::{load_obj, Obj};

let input = BufReader::new(File::open("rilakkuma.obj")?);
let obj: Obj = load_obj(input)?;

let vb = obj.vertex_buffer(&display)?;
let ib = obj.index_buffer(&display)?;

Please see the working sample for the further details. Use can execute it with the command below.

cargo run -p sampleapp

 


obj-rs is primarily distributed under the terms of both the Apache License (Version 2.0) and the MIT license. See COPYRIGHT for details.

Dependencies

~0.4–9MB
~90K SLoC