Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 2.73 KB

README.md

File metadata and controls

49 lines (32 loc) · 2.73 KB

WESL-Rust

A work in progress!

This project implements the necessary tools to build complex shaders, like what naga_oil does for bevy, but in a framework-agnostic way. At wgsl-tooling-wg we aim at standardizing a few language extensions to facilitate the work of engine developers and shader wizards.

Current and planned extensions: imports, conditional compilation, generics, modules.

Usage

This project can be used as a rust library or as a standalone CLI.

Using the CLI

  • Install cargo install --git https://github.com/wgsl-tooling-wg/wesl-rs
  • Compile a WESL shader wesl compile <entrypoint.wgsl>
  • Run eval() wesl eval <entrypoint.wgsl> <expression to eval>

Using the Crate

Refer to the crate documentation on docs.rs.

Status

update: 2025-01

We are working towards an MVP release planned for 2025 Q1. It includes imports, conditional compilation and packaging.

The crate wgsl-parse contains a WGSL-compliant syntax tree and parser, with optional syntax extensions from the WESL specification.

The crate wesl contains an implementation of the WESL specification, i.e. a compiler that takes WESL files and generates valid WGSL.

This crate contains a CLI to run the compiler and the parser.

See also:

Contributing

Contributions are welcome. Please join the discord server and introduce yourself first, or contact via email.