3 unstable releases

0.3.0 Oct 4, 2024
0.2.1 Jul 16, 2024
0.2.0 Jun 8, 2024

#186 in Graphics APIs

Download history 1592/week @ 2024-07-23 2403/week @ 2024-07-30 1521/week @ 2024-08-06 921/week @ 2024-08-13 443/week @ 2024-08-20 488/week @ 2024-08-27 617/week @ 2024-09-03 471/week @ 2024-09-10 362/week @ 2024-09-17 994/week @ 2024-09-24 1229/week @ 2024-10-01 1389/week @ 2024-10-08 1189/week @ 2024-10-15 1010/week @ 2024-10-22 1213/week @ 2024-10-29 1063/week @ 2024-11-05

4,589 downloads per month
Used in 8 crates (via vello)

Apache-2.0 OR MIT

385KB
8K SLoC

Rust 4.5K SLoC // 0.1% comments WebGPU Shader Language 4K SLoC // 0.1% comments

Vello Shaders

Integrate Vello shaders into any renderer project

Latest published version. Documentation build status. Apache 2.0 or MIT license.
Linebender Zulip chat. GitHub Actions CI status. Dependency staleness status.

This is a utility library to help integrate the Vello shader modules into any renderer project. It provides the necessary metadata to construct the individual compute pipelines on any GPU API while leaving the responsibility of all API interactions (such as resource management and command encoding) up to the client.

The shaders can be pre-compiled to any target shading language at build time based on feature flags. Currently only WGSL and Metal Shading Language are supported.

Significant changes are documented in the changelog.

Minimum supported Rust Version (MSRV)

This version of Vello Shaders has been verified to compile with Rust 1.75 and later.

Future versions of Vello Shaders might increase the Rust version requirement. It will not be treated as a breaking change and as such can even happen with small patch releases.

Click here if compiling fails.

As time has passed, some of Vello Shaders' dependencies could have released versions with a higher Rust requirement. If you encounter a compilation issue due to a dependency and don't want to upgrade your Rust toolchain, then you could downgrade the dependency.

# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1

Community

Discussion of Vello Shaders development happens in the Linebender Zulip, specifically the #gpu stream. All public content can be read without logging in.

Contributions are welcome by pull request. The Rust code of conduct applies.

License

Licensed under either of

at your option.

In addition, all files in the shader and src/cpu directories and subdirectories thereof are alternatively licensed under the Unlicense (shader/UNLICENSE or http://unlicense.org/). For clarity, these files are also licensed under either of the above licenses. The intent is for this research to be used in as broad a context as possible.

Dependencies

~6–13MB
~171K SLoC