kudo

Crates.iokudo
lib.rskudo
version0.4.0
sourcesrc
created_at2020-10-15 07:08:30.532821
updated_at2020-10-24 07:46:03.691672
descriptionA minimalist Entity Component System. (Work in Progress)
homepage
repositoryhttps://github.com/kettle11/kudo
max_upload_size
id299912
size54,799
Ian Kettlewell (kettle11)

documentation

README

👏 kudo

Documentation Crates.io License: Zlib

WORK IN PROGRESS

An Entity Component System for Rust. Fast, easy, and predictable.

  • No unsafe
  • No dependencies
  • Fewer than 1k lines of code (so far)
struct Health(f32);
struct Name(String);
struct CreepySnakeHair(u32);

let mut world = World::new();

// Create entities with components.
world.spawn((Name("Perseus".to_string()), Health(50.)));
world.spawn((
    Name("Medusa".to_string()),
    Health(100.),
    CreepySnakeHair(300),
));

// Find every entity with a `Name` and a `Health` component.
let mut query = world.query::<(&Name, &Health)>().unwrap();

// Iterate through all entities with those components.
for (name, health) in query.iter() {
    println!("{}'s health is: {:?}", name.0, health.0);
}

Kudo was inspired by the library hecs. If you need a more feature-rich ECS, give hecs a try!

Commit count: 100

cargo fmt