# Modules

|                                                          Name                                                         |                                                       Description                                                       |                                                                                                                                                       Dependancies                                                                                                                                                      | Header-Only | Plugins | Script |                  Authors                 |                               Contributors                              |
| :-------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------: | :-----: | :----: | :--------------------------------------: | :---------------------------------------------------------------------: |
|                       [shiva::box2d](https://shiva.gitbook.io/project/shiva/modules/shiva-box2d)                      |                                                       box2d plugin                                                      |                                                                                                                                       [Box2D](https://github.com/erincatto/Box2D)                                                                                                                                       |      ❌      |    ✅    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                         [shiva::dll](https://shiva.gitbook.io/project/shiva/modules/shiva-dll)                        |                                   Contains      utilities for handling dll's (plugins)                                  |                                                               [Boost.DLL](https://github.com/boostorg/dll) [Boost.Filesystem](https://github.com/boostorg/filesystem) [shiva::filesystem](https://shiva.gitbook.io/project/shiva/modules/shiva-filesystem)                                                              |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                   [    Doom](https://github.com/Doom)                   |
|                         [shiva::ecs](https://shiva.gitbook.io/project/shiva/modules/shiva-ecs)                        |    Implementation of the design pattern: [ECS](https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system)   | <p><a href="modules/shiva-dll">shiva::dll</a> <a href="modules/shiva-entt">shiva::entt</a> <a href="modules/shiva-reflection">shiva::reflection</a> <a href="modules/shiva-range">shiva::range</a> <a href="modules/shiva-event">shiva::event</a><br><a href="https://github.com/joboccara/NamedType">NamedType</a></p> |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                        [shiva::entt](https://shiva.gitbook.io/project/shiva/modules/shiva-entt)                       |          Module that just use aliases on the [EnTT](https://github.com/skypjack/entt) library for coding style          |                                                                                                                                         [EnTT](https://github.com/skypjack/entt)                                                                                                                                        |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |               [    Milerius](https://github.com/Milerius)               |
|                       [shiva::enums](https://shiva.gitbook.io/project/shiva/modules/shiva-enums)                      |                                                  enum magic extensions                                                  |                                                                                                                           [shiva::pp](https://shiva.gitbook.io/project/shiva/modules/shiva-pp)                                                                                                                          |      ✅      |    ❌    |    ❌   |      [Doom](https://github.com/doom)     | [Doom](https://github.com/doom) [Milerius](https://github.com/Milerius) |
|                       [shiva::error](https://shiva.gitbook.io/project/shiva/modules/shiva-error)                      |                                                  General error handler                                                  |           [shiva::stacktrace](http://confluence.slyris.eu/display/SHIV/shiva%3A%3Astacktrace) [shiva::filesystem](http://confluence.slyris.eu/display/SHIV/shiva%3A%3Afilesystem) [shiva::entt](http://confluence.slyris.eu/display/SHIV/shiva%3A%3Aentt) [expected](https://github.com/TartanLlama/expected)           |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                       [shiva::event](https://shiva.gitbook.io/project/shiva/modules/shiva-event)                      |                                     Module that contains the common events of shiva                                     |                                                                                                                   [shiva::reflection](https://shiva.gitbook.io/project/shiva/modules/shiva-reflection)                                                                                                                  |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                  [shiva::filesystem](https://shiva.gitbook.io/project/shiva/modules/shiva-filesystem)                 |                    Module that use the preprocessor to choose the right version of filesystem for c++                   |                                                                                                                                                            ⛔                                                                                                                                                            |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                       [shiva::input](https://shiva.gitbook.io/project/shiva/modules/shiva-input)                      |                                Module representing all that is interaction with hardware                                |                                                                                                                        [shiva::enums](https://shiva.gitbook.io/project/shiva/modules/shiva-enums)                                                                                                                       |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                         [shiva::lua](https://shiva.gitbook.io/project/shiva/modules/shiva-lua)                        |                                     Systems allowing the manipulation of lua script                                     |                                                                                                          <p><a href="modules/shiva-ecs">shiva::ecs</a><br><a href="https://github.com/ThePhD/sol2">sol2</a></p>                                                                                                         |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                        [shiva::json](https://shiva.gitbook.io/project/shiva/modules/shiva-json)                       |              Module that just use aliases on the [nlohmann-json](https://github.com/nlohmann/json) library              |                                                                                                                                    [nlohmann-json](https://github.com/nlohmann/json)                                                                                                                                    |      ✅      |    ❌    |    ❌   | [Milerius](https://github.com/Milerius/) |                 [Milerius](https://github.com/Milerius/)                |
|                        [shiva::meta](https://shiva.gitbook.io/project/shiva/modules/shiva-meta)                       |                                                Metaprogramming utilities                                                |                                                                                                                           [shiva::pp](http://confluence.slyris.eu/display/SHIV/shiva%3A%3App)                                                                                                                           |      ✅      |    ❌    |    ❌   |      [Doom](https://github.com/doom)     | [Doom](https://github.com/doom) [Milerius](https://github.com/Milerius) |
|                          [shiva::pp](https://shiva.gitbook.io/project/shiva/modules/shiva-pp)                         |                                                   Preprocessor helpers                                                  |                                                                                                                                                            ⛔                                                                                                                                                            |      ✅      |    ❌    |    ❌   |      [Doom](https://github.com/doom)     | [Doom](https://github.com/doom) [Milerius](https://github.com/Milerius) |
|                 [shiva::pyscripting](https://shiva.gitbook.io/project/shiva/modules/shiva-pyscripting)                |                                    Systems allowing the manipulation of python script                                   |                                                                                                      <p><a href="modules/shiva-ecs">shiva::ecs</a><br><a href="https://github.com/pybind/pybind11">pybind11</a></p>                                                                                                     |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                       [shiva::range](https://shiva.gitbook.io/project/shiva/modules/shiva-range)                      |     Module that just use aliases on the [NanoRange](https://github.com/tcbrindle/NanoRange) library for coding style    |                                                                                                                                   [NanoRange](https://github.com/tcbrindle/NanoRange)                                                                                                                                   |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                  [shiva::reflection](https://shiva.gitbook.io/project/shiva/modules/shiva-reflection)                 |                                 Module that allows to make the compile-time reflection.                                 |                                                                                       [shiva::pp](http://confluence.slyris.eu/display/SHIV/shiva%3A%3App) [shiva::meta](http://confluence.slyris.eu/display/SHIV/shiva%3A%3Ameta)                                                                                       |      ✅      |    ❌    |    ❌   |      [Doom](https://github.com/doom)     | [Doom](https://github.com/doom) [Milerius](https://github.com/Milerius) |
|                      [shiva::scenes](https://shiva.gitbook.io/project/shiva/modules/shiva-scenes)                     |                                              Scenes manager written in Lua                                              |                                                                                                            <p><a href="modules/shiva-ecs">shiva::ecs</a></p><p><a href="modules/shiva-lua">shiva::lua</a></p>                                                                                                           |      ❌      |    ❌    |    ✅   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                  [shiva::stacktrace](https://shiva.gitbook.io/project/shiva/modules/shiva-stacktrace)                 | Module that just use aliases on the [Boost.Stacktrace](https://github.com/boostorg/stacktrace) library for coding style |                                                                                                                                [Boost.Stacktrace](https://github.com/boostorg/stacktrace)                                                                                                                               |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
| [shiva::system-sfml-animation](https://shiva.gitbook.io/project/shiva/modules/shiva-sfml/shiva-system-sfml-animation) |                                        An animation system plugin that uses SFML                                        |                                                                                         <p><a href="modules/shiva-ecs">shiva::ecs</a><br>shiva::sfml-common<br><a href="modules/shiva-lua">shiva::lua</a></p><p>SFML</p><p></p>                                                                                         |      ❌      |    ✅    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|  [shiva::system-sfml-graphics](https://shiva.gitbook.io/project/shiva/modules/shiva-sfml/shiva-system-sfml-graphics)  |                    A rendering system plugin that uses [SFML](https://www.sfml-dev.org/index-fr.php)                    |                                                                                   <p><a href="http://confluence.slyris.eu/display/SHIV/shiva%3A%3Aecs">shiva::ecs</a><br><a href="https://www.sfml-dev.org/index-fr.php">SFML</a></p>                                                                                   |      ❌      |    ✅    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                       [shiva::timer](https://shiva.gitbook.io/project/shiva/modules/shiva-timer)                      |                                 Module that facilitates the manipulation of time in C++                                 |                                                                                                                                                            ⛔                                                                                                                                                            |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
|                       [shiva::world](https://shiva.gitbook.io/project/shiva/modules/shiva-world)                      |                             Module that contains all that is needed to create a game world.                             |                                                                                                                          [shiva::ecs](http://confluence.slyris.eu/display/SHIV/shiva%3A%3Aecs)                                                                                                                          |      ✅      |    ❌    |    ❌   |  [Milerius](https://github.com/Milerius) |                 [Milerius](https://github.com/Milerius)                 |
