Dijkstar
pqueue
Dijkstar | pqueue | |
---|---|---|
1 | 1 | |
52 | 170 | |
- | - | |
4.5 | 2.9 | |
7 months ago | 8 months ago | |
Python | Erlang | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Dijkstar
-
-🎄- 2021 Day 15 Solutions -🎄-
Then I stumbled upon Dijkstar, which is an implementation of Dijkstra in python that has the ability to pass in your own heuristics function to customise how it runs. In this case the default behaviour gave me exactly what I needed and even returns total cost.
pqueue
-
-🎄- 2021 Day 15 Solutions -🎄-
This limitation did give me an excuse to implement Dijkstra's algorithm from scratch, which was fun; it also allowed me to play around with the pqueue library, which is very convenient although also imposes its own set of constraints that require the user to have a good amount of foreknowledge about the data they plan to insert into the queue. Since I didn't have that for this problem, I chose a pessimistic heuristic that doesn't seem to impact performance much for the data sizes we're dealing with here.
What are some alternatives?
adventofcode - Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala
Ravenx - Notification dispatch library for Elixir applications
Advent-of-Code - 🎄 My Advent of Code solutions 🎄
enm - Erlang driver for nanomsg
adventofcode - Advent of code
que - Simple Job Processing in Elixir with Mnesia :zap:
CPython - The Python programming language
elixir_nsq - An NSQ client for Elixir and Erlang, written in Elixir.
conduit - A message queue framework, with support for middleware and multiple adapters.
oban - 💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3
adap - Create a data stream across your information systems to query, augment and transform data according to Elixir matching rules.
honeydew - Job Queue for Elixir. Clustered or Local. Straight BEAM. Optional Ecto. 💪🍈