Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oslquery-petite

Rust implementation for querying Open Shading Language (OSL) compiled shader metadata.

Crates

This workspace contains two crates:

The main library for parsing and querying OSL .oso files. Provides:

  • Pure Rust parser for OSO format (no C++ dependencies).
  • Type-safe API where parameter types and values are unified.
  • Support for all OSL types (int, float, color, point, vector, normal, matrix, arrays, closures).
  • Metadata extraction.

Full documentation →

Command-line tool for inspecting OSO files, similar to OSL's oslinfo:

# Query shader parameters
oslq shader.oso

# Query specific parameter
oslq --param Kd shader.oso

# JSON output
oslq --json shader.oso

Full documentation →

Quick Start

Add to your Cargo.toml:

[dependencies]
oslquery-petite = "0.1"

Basic usage:

use oslquery_petite::{OslQuery, TypedParameter};

let query = OslQuery::open("shader.oso")?;
println!("Shader: {} ({})", query.shader_name(), query.shader_type());

for param in query.params() {
    match param.typed_param() {
        TypedParameter::Color { default: Some([r, g, b]), .. } => {
            println!("  {} : color = [{}, {}, {}]", param.name, r, g, b);
        }
        TypedParameter::Float { default: Some(val) } => {
            println!("  {} : float = {}", param.name, val);
        }
        _ => {}
    }
}

Installation

For the command-line tool:

cargo install --path oslq

For library usage, see the Quick Start above.

License

BSD 3-Clause (same as OpenShadingLanguage)

About

Lightweight Rust crate for querying OSL shader parameters

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages