<div align="center">
# Vello Shaders
**Integrate [Vello] shaders into any renderer project**
[](https://crates.io/crates/vello_shaders)
[](https://docs.rs/vello_shaders)
[](#license)
\
[](https://xi.zulipchat.com/#narrow/channel/197075-vello) [](https://github.com/linebender/vello/actions)
[](https://deps.rs/crate/vello_shaders)
</div>
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.89**
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.
<details>
<summary>Click here if compiling fails.</summary>
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.
```sh
# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1
```
</details>
## Community
Discussion of Vello Shaders development happens in the
[Linebender Zulip](https://xi.zulipchat.com/), specifically the
[#vello channel](https://xi.zulipchat.com/#narrow/channel/197075-vello). 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
- Apache License, Version 2.0 ([LICENSE-APACHE](../../LICENSE-APACHE) or
<http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](../../LICENSE-MIT) or
<http://opensource.org/licenses/MIT>)
at your option.
In addition, all files in the
[`shader`](https://github.com/linebender/vello/tree/main/research/vello_shaders/shader)
and
[`src/cpu`](https://github.com/linebender/vello/tree/main/research/vello_shaders/src/cpu)
directories and subdirectories thereof are alternatively licensed under the
Unlicense ([shader/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.
[Rust code of conduct]: https://www.rust-lang.org/policies/code-of-conduct
[Vello]: ../vello_research
[the changelog]:
https://github.com/linebender/vello/tree/main/research/CHANGELOG.md