secs 0.1.0

Shit Entity Component System
Documentation
  • Coverage
  • 80%
    4 out of 5 items documented0 out of 0 items with examples
  • Size
  • Source code size: 76.48 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.71 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 14s Average build duration of successful builds.
  • all releases: 14s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • wick3dr0se/secs
    67 5 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • wick3dr0se

secs - Shit Entity Component System

secs is an ECS for people who want something with the bare minimum. No complex features, no unnecessary abstractions — just the essentials, no strings attached (but you could do that)

If you’re tired of ECS libraries that make you feel like you’re writing a thesis on systems design, secs is here to give you what you need and nothing more

Why secs?

You could use something like hecs, specs or bevy for your ECS needs, but why chase frills when you could have uncomplicated secs? It's simple, lightweight and may (or may not) get the job done. No promises. If you need more, you can always try something else

secs — without the fluff

Features

  • Entity Management: Entities are ID's, right?
  • Component Storage: Components are stored in sparse sets — sounds fancy but archetypes were too much work
  • Multiple Mutable Queries: You can mutate many components, probably..
  • Scheduling: secs has a minimal scheduler that stays out of your way. Need more control? Run systems manually.
  • Resources: Resources can easily be passed around to any (scheduled) system

Getting Started

Get secs

cargo add secs

Example: How it’s probably supposed to work

use secs::World;

let mut world = World::default();
world.spawn((Component1 { /* your data */ }, Component2));

world.query(|entity, c1: &Component1, c2: &mut Component2| {
    // maybe get mixed mutability components
})

See more examples in examples/

Contributing

Want to make secs less shitty? Contributions are much appreciated