psqueues
pqueue
Our great sponsors
psqueues | pqueue | |
---|---|---|
1 | 1 | |
63 | 170 | |
- | - | |
5.2 | 2.9 | |
6 months ago | 6 months ago | |
Haskell | Erlang | |
BSD 3-clause "New" or "Revised" 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.
psqueues
-
-🎄- 2021 Day 15 Solutions -🎄-
A super-ugly Dijkstra implementation with psqueues for priority queues. Before I took them into use the first part took ~10 sec, after that it's ~60ms, and 2.5s for the second part. I believe, there's still room for optimization, but it's enough for today.
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?
miso - :ramen: A tasty Haskell front-end framework
Ravenx - Notification dispatch library for Elixir applications
fgl - A Functional Graph Library for Haskell
enm - Erlang driver for nanomsg
containers - Assorted concrete container types
que - Simple Job Processing in Elixir with Mnesia :zap:
heap - A flexible Haskell implementation of minimum, maximum, minimum-priority, maximum-priority and custom-ordered heaps.
elixir_nsq - An NSQ client for Elixir and Erlang, written in Elixir.
graphite - Haskell graphs and networks library
conduit - A message queue framework, with support for middleware and multiple adapters.
parameterized-utils - A set of utilities for using indexed types including containers, equality, and comparison.
oban - 💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3