Basic algorithms and data structures implemented with es6
a queue for executing promises concurrently