| Crates.io | kero |
| lib.rs | kero |
| version | 0.1.12 |
| created_at | 2026-01-14 19:31:32.745256+00 |
| updated_at | 2026-01-22 23:07:55.458877+00 |
| description | A simple, approachable framework for creating 2D games in Rust and/or Lua. |
| homepage | https://make-kero.games |
| repository | https://github.com/feyworks/feyworks |
| max_upload_size | |
| id | 2043535 |
| size | 1,197,619 |

An approachable cross-platform framework for creating 2D games in either Rust, Lua, or both.
โ ๏ธ KERO IS CURRENTLY IN UNSTABLE ALPHA TESTING PHASE AND NOT FOR GENERAL USE
Kero is a pure-code framework that programmers can use to code their games or even to build their own game engines. It provides:
There's no fancy setup required, Kero is just a normal crate. To create a new empty game project,
first create it and add kero as a dependency:
cargo new --bin my_game
cd my_game
cargo add kero
Then, replace src/main.rs with the following:
use kero::prelude::*;
fn main() -> Result<(), GameError> {
// create a game, set some options, and then run it
kero::new_game()
.with_default_logger()
.with_title("My Game")
.with_size(1280, 720)
.run::<MyGame>(())
}
// store your game state and graphics resources here
pub struct MyGame {}
impl Game for MyGame {
type Config = ();
// initialize your game state here, such as creating graphics resources, etc.
fn new(ctx: &Context, cfg: Self::Config) -> Result<Self, GameError>
where
Self: Sized,
{
Ok(Self {})
}
// perform your game logic here
fn update(&mut self, ctx: &Context) -> Result<(), GameError> {
Ok(())
}
// perform your drawing code here
fn render(&mut self, ctx: &Context, draw: &mut Draw) -> Result<(), GameError> {
Ok(())
}
}
The examples folder has a bunch of examples you can check out to see how different things are done.
Thank you for helping test Kero! ๐ Please join our Discord where we are currently looking for feedback:
And if you think this is the kind of project you'd like to help out on, we're definitely interested in having more contributors. It would be great if this could be polished up, stabilized, and turned into a reliable game development tool for the Rust ecosystem.