lightspeed-astarjs 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -1
- package/package.json +20 -7
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A high-performance A* pathfinding library for web applications, built with C++ and compiled to WebAssembly for maximum speed.
|
|
4
4
|
|
|
5
|
+
[https://saqib-ali.com/lightspeed-astarjs/](https://saqib-ali.com/lightspeed-astarjs/)
|
|
6
|
+
|
|
5
7
|
## Overview
|
|
6
8
|
|
|
7
9
|
This project implements the A* algorithm in C++ to leverage its raw performance and direct memory management, exposing the functionality to the browser via WebAssembly. It includes a TypeScript wrapper that runs the WASM module in a Web Worker, ensuring your main thread remains unblocked even during complex pathfinding operations.
|
|
@@ -10,14 +12,21 @@ This project implements the A* algorithm in C++ to leverage its raw performance
|
|
|
10
12
|
- **C++ Performance**: Core logic compiled to optimized WebAssembly.
|
|
11
13
|
- **Customizable**: Support for custom heuristics and neighbor logic via WASM side module.
|
|
12
14
|
- **Non-blocking**: Pathfinding operations run in a Web Worker, keeping the main thread responsive.
|
|
15
|
+
- **Simple Configuration**: Library entry-point, worker, and WASM logic is bundled into a single file.
|
|
13
16
|
|
|
14
17
|
## Installation
|
|
15
18
|
|
|
16
19
|
```bash
|
|
17
20
|
npm install lightspeed-astar
|
|
18
21
|
```
|
|
22
|
+
OR
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<script type="module">
|
|
26
|
+
import { AStarWorker, createGridBuffer } from "https://cdn.jsdelivr.net/npm/lightspeed-astarjs@latest/+esm";
|
|
27
|
+
</script>
|
|
28
|
+
```
|
|
19
29
|
|
|
20
|
-
*Note: As this is a project-specific library, you likely need to build it locally or include it in your workspace.*
|
|
21
30
|
|
|
22
31
|
## Usage
|
|
23
32
|
|
|
@@ -147,3 +156,11 @@ See `test/wasm_integration.node.ts` for an example of how to do this.
|
|
|
147
156
|
```bash
|
|
148
157
|
make test
|
|
149
158
|
```
|
|
159
|
+
|
|
160
|
+
# Future Enhancements
|
|
161
|
+
|
|
162
|
+
If people are interested...
|
|
163
|
+
|
|
164
|
+
- Support for multiple types of obstacles
|
|
165
|
+
- This is currently possible if you use custom logic through a WASM side module, but let's support a JS only way of doing this
|
|
166
|
+
- Multi-threading (probably a meet-in-the-middle approach)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lightspeed-astarjs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -17,9 +17,19 @@
|
|
|
17
17
|
"test:node": "node node_modules/jest/bin/jest.js",
|
|
18
18
|
"test:browser": "node scripts/test-browser.js"
|
|
19
19
|
},
|
|
20
|
-
"keywords": [
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
"keywords": [
|
|
21
|
+
"astar",
|
|
22
|
+
"pathfinding",
|
|
23
|
+
"webassembly",
|
|
24
|
+
"performance",
|
|
25
|
+
"game development",
|
|
26
|
+
"typescript",
|
|
27
|
+
"traversal",
|
|
28
|
+
"graph",
|
|
29
|
+
"custom",
|
|
30
|
+
"fast"
|
|
31
|
+
],
|
|
32
|
+
"license": "MIT",
|
|
23
33
|
"description": "",
|
|
24
34
|
"files": [
|
|
25
35
|
"dist/index.js",
|
|
@@ -27,14 +37,17 @@
|
|
|
27
37
|
"dist/index.d.ts",
|
|
28
38
|
"dist/index.d.mts"
|
|
29
39
|
],
|
|
40
|
+
"repository": {
|
|
41
|
+
"type": "git",
|
|
42
|
+
"url": "https://github.com/saqibali-2k/lightspeed-astarjs.git"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://saqib-ali.com/lightspeed-astarjs/",
|
|
45
|
+
"author": "Saqib Ali <saqibali.toronto@gmail.com>",
|
|
30
46
|
"devDependencies": {
|
|
31
47
|
"@playwright/test": "^1.57.0",
|
|
32
|
-
"@types/easystarjs": "^0.1.29",
|
|
33
48
|
"@types/jest": "^30.0.0",
|
|
34
49
|
"@types/node": "^25.0.3",
|
|
35
|
-
"easystarjs": "^0.4.4",
|
|
36
50
|
"esbuild": "^0.27.2",
|
|
37
|
-
"fast-astar": "^1.0.6",
|
|
38
51
|
"http-server": "^14.1.1",
|
|
39
52
|
"jest": "^30.2.0",
|
|
40
53
|
"ts-jest": "^29.4.6",
|