* fix(js): use pure JS SHA256 library, refactor Closes #458 Additionally, I made a horrifying discovery: Firefox seems to actively hinder performance if you are using more than one Worker per page. It does not spread the load out across cores like I expected. Instead it seems to make that one Worker thrash and have to constantly context switch, which caused a lot of slowdown. The benchmarks in #155 continue to be the best contribution ever made to Anubis. What clued me into there being a problem here was the fact that the "slow" algorithm was faster than the "fast" algorithm on my laptop. This made no intuitive sense to me so I dug further. Either way I think this is a Firefox bug at its core, but for now we have to work around it by doing the hacky terrible thing that I hate. I also swapped the SHA256 operations to @aws-crypto/sha256-js on the advice of a trusted cryptography expert. I don't know what performance differences this makes, but I'm getting 150-225 kilohashes per second, which is pretty dang good. Signed-off-by: Xe Iaso <me@xeiaso.net> * fix(js): apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Xe Iaso <me@xeiaso.net> * fix(js): use fast algo for fast worker Signed-off-by: Xe Iaso <me@xeiaso.net> --------- Signed-off-by: Xe Iaso <me@xeiaso.net> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
31 lines
948 B
JSON
31 lines
948 B
JSON
{
|
|
"name": "@techaro/anubis",
|
|
"version": "1.18.0-pre1",
|
|
"description": "",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"test": "npm run assets && go test ./...",
|
|
"test:integration": "npm run assets && go test -v ./internal/test",
|
|
"assets": "go generate ./... && ./web/build.sh && ./xess/build.sh",
|
|
"build": "npm run assets && go build -o ./var/anubis ./cmd/anubis",
|
|
"dev": "npm run assets && go run ./cmd/anubis --use-remote-address",
|
|
"container": "npm run assets && go run ./cmd/containerbuild",
|
|
"package": "yeet",
|
|
"lint": "make lint"
|
|
},
|
|
"author": "",
|
|
"license": "ISC",
|
|
"devDependencies": {
|
|
"cssnano": "^7.0.6",
|
|
"cssnano-preset-advanced": "^7.0.6",
|
|
"esbuild": "^0.25.3",
|
|
"playwright": "^1.52.0",
|
|
"postcss-cli": "^11.0.1",
|
|
"postcss-import": "^16.1.0",
|
|
"postcss-import-url": "^7.2.0",
|
|
"postcss-url": "^10.1.3"
|
|
},
|
|
"dependencies": {
|
|
"@aws-crypto/sha256-js": "^5.2.0"
|
|
}
|
|
}
|