Spearmint

Spearmint is an Entity Component System (ECS) library for Elixir From its shameless root library ECSpanse, the code has been modified to bring:

The goal is to eventually support:

These changes are expected to drastically impact the ergonomics of the library in a negative way. Mainly, all of the conveniences afforded by using global ets tables and singletons are lost. For my use case, that is a trade I am willing to take.

If you want a well written and more ergonomic ECS ecosystem, please check out ECSpanse. https://hex.pm/packages/ecspanse This fork has been made without any direct communication with the ECSpanse team and my recommendation of their library does not imply any form of recommendation or endorsement of this fork on their behalf.

Installation

If available in Hex, the package can be installed by adding spearmint to your list of dependencies in mix.exs:

def deps do
[
{:spearmint, "~> 0.0.0"}
]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/spearmint.