lunaris_ecs 0.1.0

Minimal ECS abstraction layer for Lunaris video editor - currently backed by bevy_ecs
Documentation
  • Coverage
  • 50%
    1 out of 2 items documented0 out of 0 items with examples
  • Size
  • Source code size: 29.26 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 20.95 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 1m 50s Average build duration of successful builds.
  • all releases: 1m 50s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • lunaris-systems/lunaris
    9 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • shuntia

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.