| Crates.io | graphicility |
| lib.rs | graphicility |
| version | 0.3.0 |
| created_at | 2026-01-09 13:07:14.543076+00 |
| updated_at | 2026-01-18 11:46:23.032213+00 |
| description | A Minimal Graphics Library |
| homepage | |
| repository | https://github.com/BersisSe/graphicility |
| max_upload_size | |
| id | 2032047 |
| size | 478,809 |
Graphicility is a minimal graphics library that makes drawing pixels to a window simple.
If you've ever tried to draw pixels to a window in Rust for example, for a CHIP-8 emulator you know the pain. Using iced or egui often feels like overkill, while wgpu + winit feels far too low-level.
Graphicility exists to bridge that gap.
It provides a small, immediate-mode drawing API on top of a window and render loop, without forcing a UI framework or architectural style.
iced or eguiwgpuIf you need those things, Graphicility is probably not the right tool and that’s okay, it doesn't have to be.
run() and start drawinguse graphicility::{run, Color};
fn main() {
run(|ctx| {
let g = ctx.graphics();
g.clear(Color::WHITE);
g.rect(50, 50, 100, 100, Color::BLACK);
});
}

use graphicility::Color;
fn main() {
let mut pos = Vec2 { x: 50, y: 50 };
let mut vel = Vec2 { x: 2, y: 3 };
let size = Vec2 { x: 20, y: 20 };
graphicility::run_with(conf, move |ctx| {
let dt = ctx.delta_time();
let g = ctx.graphics();
pos.x += (vel.x as f64 * dt * 60.0) as i32;
pos.y += (vel.y as f64 * dt * 60.0) as i32;
let (width, height) = g.logical_size();
if pos.x <= 0 || pos.x + size.x >= width as i32 {
vel.x = -vel.x;
}
if pos.y <= 0 || pos.y + size.y >= height as i32 {
vel.y = -vel.y;
}
g.clear(Color::WHITE);
g.rect(pos, size, Color::rgb(128, 23, 255));
g.text((10, 10), "Graphicility v0.3.0", Color::CYAN);
g.text((10, height as i32 - 20), format!("Pos: {}, {}", pos.x, pos.y), Color::BLACK);
});
}

Internally, Graphicility handles:
You control what is drawn. Graphicility handles how it appears on screen.
Graphicility is designed to be the first mile of graphics in Rust.
It favors:
Drawing a rectangle should not require hundreds of lines of setup.
Graphicility is currently under heavy development. APIs may change as the library is refined through real-world use.
Any Kind of Contributions are welcome! From Extending to Changing out the Core check out the CONTRIBUTING.md