Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 80
trim_trailing_whitespace = true
3 changes: 3 additions & 0 deletions .github/workflows/npm-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,8 @@ jobs:
- name: Install dependencies
run: npm ci

- name: Run linting
run: npm run lint

- name: Run tests
run: npm test
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Dependency directories
node_modules/
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ COPY package*.json ./
RUN npm install

# Mount src/ directory as a volume
VOLUME ["src/", "tests/"]
VOLUME ["src/", "test/"]

# Default command (can be overridden)
CMD ["node", "tests/main.js"]
CMD ["node", "test/main.js"]
15 changes: 3 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tsinghua Single Source Shortest Paths algorithm

This is a repository containing implementation varieties based on the paper written by Duan Ran et. al. from Tsinghua University.
This is a repository containing a simple community driven implementation in Javascript based on the paper written by Duan Ran et. al. from Tsinghua University.
"Breaking the Sorting Barrier for Directed Single-Source Shortest Paths".

https://dl.acm.org/doi/10.1145/3717823.3718179
Expand All @@ -13,18 +13,9 @@ We give a deterministic O(mlog2/3n)-time algorithm for single-source shortest pa

## Development Details

This project is mainly focused in Javascript (in order to be published to npmjs.com via github Actions).
This project is mainly focused in Javascript in order to be published to npmjs.com as a JS module (esmodule).

### Other Implementations
### Other Implementations in GitHub

https://github.com/search?q=bmssp&type=repositories

Rust:
- https://github.com/lucas-montes/bmssp - Available as a crate to pull.

Java:
- https://github.com/PatrickDiallo23/BMSSP-Java

Python:
- https://github.com/sidharthpunathil/fastest-shortest-path-algo-poc
- https://github.com/simpsonresearch/tsinghua_benchmarks/tree/main
29 changes: 29 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from "@eslint/js";
import markdown from "@eslint/markdown";
import prettier from "eslint-plugin-prettier";
import prettierConfig from "eslint-config-prettier";
import globals from "globals";

export default [
{
files: ["**/*.md"],
plugins: {
markdown,
},
processor: "markdown/markdown",
},
js.configs.recommended,
{
files: ["**/*.{js,mjs,cjs}"],
plugins: {
prettier,
},
rules: {
"prettier/prettier": "error",
},
languageOptions: {
globals: globals.node,
},
},
prettierConfig,
];
Loading