A Rust 2D drawing abstraction.
AnyRender is a 2D drawing abstaction that allows applications/frameworks to support many rendering backends through a unified API.
Discussion of AnyRender development happens in the Linebender Zulip at https://xi.zulipchat.com/.
anyrenderThe core anyrender crate is a lightweight type/trait-only crate that defines three abstractions:
PaintScene. Backends generally execute those commands to
produce an output (although they may do other things like store them for later use).Vec<u8> image bufferCurrently existing backends are:
Contributions for other backends (tiny-skia, femtovg, etc) would be very welcome.
These crates sit on top of the the AnyRender abstraction, and allow you render content through it:
kurbo feature.Devices and other WGPU typesWindowRenderer for any AnyRenderer ImageRenderer using the pixels crate.WindowRenderer for any AnyRenderer ImageRenderer using the softbuffer crate.This version of AnyRender has been verified to compile with Rust 1.86 and later.
Future versions of AnyRender 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.
Licensed under either of
at your option.
Contributions are welcome by pull request. The Rust code of conduct applies.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
$ claude mcp add anyrender \
-- python -m otcore.mcp_server <graph>