// the find
amethyst/specs
Specs - Parallel ECS
Specs is a parallel ECS library for Rust built around rayon-based system dispatch. It was the ECS backbone of the Amethyst game engine, which was archived in 2023. At this point it's a well-documented, battle-tested library that's no longer under active development.
The storage abstraction is genuinely flexible — five built-in storage types (VecStorage, DenseVecStorage, HashMapStorage, NullStorage, DefaultVecStorage) with clear performance tradeoffs documented. The book-style tutorial is unusually thorough for a Rust game dev crate: 14 chapters covering joins, change detection, saveload, and parallel dispatch. The dispatcher dependency graph lets you declare system ordering explicitly and still get automatic parallelism where the borrow rules allow. Saveload support via serde is built-in and works, which most ECS libraries punt on.
Amethyst is dead and Specs is effectively in maintenance mode — the last meaningful commit was 2024 and the Gitter badge links to a room that no longer exists. If you're starting a new project, hecs, bevy_ecs, or flecs-rs are where the ecosystem momentum is. The WorldExt extension trait pattern is a rough edge: you have to import it explicitly and it's easy to get confused about which methods live where. The System lifetime annotations ('a everywhere) create significant friction with complex system designs and don't play nicely with async. No built-in support for relations between entities, which is now table stakes for serious ECS work.