2 releases

0.10.3 Jan 17, 2022
0.10.0 Jan 8, 2022

#830 in Graphics APIs

Download history 9/week @ 2024-01-06 11/week @ 2024-01-13 3/week @ 2024-01-20 9/week @ 2024-02-03 19/week @ 2024-02-10 28/week @ 2024-02-17 56/week @ 2024-02-24 23/week @ 2024-03-02 23/week @ 2024-03-09 29/week @ 2024-03-16 59/week @ 2024-03-23 67/week @ 2024-03-30 30/week @ 2024-04-06 30/week @ 2024-04-13 21/week @ 2024-04-20

160 downloads per month
Used in 10 crates

Custom license




The base of the ivy framework. This crate provides some of the most used types and traits which many of the other crates depend on. Check crate::components for more information.


The App is the heart of any Ivy program. It defines the broad behaviour by layers. Each layer is a set of logic which can be exectuted with minimal shared data from other layers. A common pattern is to have the graphics as one layer, and the game logic as another. This ensures that the code is kept simple such that the game does not need to be concerned with rendering the world, and the rendering does not need to be concerned with the game logic.

The layered design allows for easily customizable games as behaviors can be added conditionally, for example a network layer or similar.


The crate also exports a gizmos system crate::gizmos which allows the creation of temporary "objects" that can be renderered into the world to provide debuggable feedback.

Note: The crate is not responsible for rendering the gizmos, but rather provides an agnostic backend for gizmo management. Most commonly, ivy-graphics::gizmos is used for rendering the gizmos, but is not required. Gizmos could just as well be rendered in text or an Ncurses like interface.


~213K SLoC