https://github.com/pbayer/events
Discrete event simulation framework in Elixir
https://github.com/pbayer/events
discrete-event-simulation elixir
Last synced: 2 months ago
JSON representation
Discrete event simulation framework in Elixir
- Host: GitHub
- URL: https://github.com/pbayer/events
- Owner: pbayer
- Created: 2021-05-03T16:32:18.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-18T06:04:52.000Z (almost 4 years ago)
- Last Synced: 2025-01-07T16:28:08.233Z (4 months ago)
- Topics: discrete-event-simulation, elixir
- Language: Elixir
- Homepage:
- Size: 51.8 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Events
Discrete event simulation (DES) framework in Elixir.
[](https://github.com/pbayer/events/actions/workflows/ci.yml)
[](https://coveralls.io/github/pbayer/events?branch=master)## Outline
Elixir is an [actor](https://en.wikipedia.org/wiki/Actor_model) language based on the [BEAM](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)) and thereby should enable `Events` to
- handle thousands of concurrent entities in a simulation,
- model them as actors and
- integrate the event-, activity- and process-based approaches to DES in one simple actor-framework.## Goal
The goal of `Events` is to figure out how this can be done. The steps roughly are to
- [x] implement the basic clock and event handling functionality,
- [ ] write examples of event-, activity- and process-based simulations,
- [ ] explore further possibilities of Erlang/Elixir for DES,
- [ ] combine them into one convenient framework.## Development
All this is in an early stage and only possible in principle. The constraint is my time and knowledge. It is a fascinating playground to find out more about it. Other people are welcome to comment and to join.
------------
## Installation
[Registration in Hex](https://hex.pm/docs/publish) will be done after the first steps (above) have been taken. Then the package can be installed by adding `events` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:events, "~> 0.1.0"}
]
end
```Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/events](https://hexdocs.pm/events).