1 unstable release
Uses new Rust 2024
new 0.1.0 | Apr 28, 2025 |
---|
#13 in #winit
1MB
287 lines
Features
Component | Highlight |
---|---|
Windowing | Pure Rust (no GLFW/SDL), WASM-ready |
Primitive & Texture Rendering | Zero-config builders with NDC conversion |
Input Handling | Snapshot polling (no callbacks) |
Timing | Delta time + FPS tracking |
Getting Started
Get egor
cargo add --git https://github.com/wick3dr0se/egor
Example: Creating a window, clearing the surface and drawing a circle with 100 segments
App::init(|_ctx| {})
.run(|ctx| {
ctx.renderer.clear(Color::GREEN);
ctx.renderer.circle().segments(100).draw();
});
See more examples in examples/
You can run any examples with cargo
or run the cross-platform example via bash run.sh [native|webgpu|webgl] [debug|relesae]
. The script will execute either the former or trunk serve
to run a web build, based on the arguments passed. It'll also setup a WASM target and trunk
if needed
Platform Support
Target | Backend(s) | Status |
---|---|---|
Windows | DX12, Vulkan, OpenGL | ✅ Working |
MacOS | Metal, Vulkan (MoltenVK) | ✅ Working |
Linux | Vulkan, OpenGL | ✅ Working |
Web (WASM) | WebGPU, WebGL2 | ✅ Working |
Android | Vulkan, OpenGL ES | ⏳ Future |
iOS | Metal | ⏳ Future |
Roadmap
- Text
- Custom Shaders
- Blend Modes
- Camera System
- Immediate UI
Contributing
Egor could always use help.. Feel free to open an issue or PR. Contributions are much appreciated!
Dependencies
~6–42MB
~658K SLoC