lunaris_ecs

Crates.iolunaris_ecs
lib.rslunaris_ecs
version0.1.0
created_at2025-11-21 00:44:35.8515+00
updated_at2025-11-21 00:44:35.8515+00
descriptionMinimal ECS abstraction layer for Lunaris video editor - currently backed by bevy_ecs
homepagehttps://github.com/lunaris-systems/lunaris
repositoryhttps://github.com/lunaris-systems/lunaris
max_upload_size
id1942832
size29,770
shuntia (shuntia)

documentation

https://docs.rs/lunaris_ecs

README

lunaris_ecs

Minimal ECS abstraction layer for the Lunaris video editor.

Overview

lunaris_ecs provides a thin wrapper around bevy_ecs, re-exporting only the essential types needed for plugin development. This abstraction allows Lunaris to potentially swap ECS backends in the future without breaking plugin compatibility.

Current Backend

Currently backed by bevy_ecs 0.15.0 with multi_threaded and trace features enabled.

Exported Types

  • Core: Entity, World
  • Component System: Component, Resource
  • Systems: Commands, Query, Res, ResMut, System, BoxedSystem
  • Events: Event
  • Query Filters: With, Without
  • Scheduling: Schedule

Usage

use lunaris_ecs::prelude::*;

#[derive(Component)]
struct Position {
    x: f32,
    y: f32,
}

fn my_system(query: Query<&Position>) {
    for pos in query.iter() {
        println!("Position: ({}, {})", pos.x, pos.y);
    }
}

Design Philosophy

This crate intentionally exposes a minimal API surface to:

  1. Enable future backend swaps without breaking plugins
  2. Reduce the learning curve for plugin developers
  3. Maintain forward compatibility as Lunaris evolves

Part of Lunaris

This crate is part of the Lunaris video editor ecosystem - a microkernel-based multimedia platform designed for extensibility via Rust plugins.

License

Licensed under either of:

at your option.

Commit count: 0

cargo fmt