Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
2aa0244
feat: add wasm modules from branch Xe/wasm3
Xe Jun 15, 2026
b707500
test(ssh-ci): add rust detritus to test closure
Xe Jun 15, 2026
bc802fb
fix(yeetfile): terminate quote properly
Xe Jun 15, 2026
6ae2db9
ci: update CI jobs for rust dependencies
Xe Jun 15, 2026
a33d5b8
ci: use more modern rustup flow
Xe Jun 15, 2026
a4fe7ee
feat: import hashx from wasm3 branch
Xe Jun 15, 2026
f1509ec
feat: import client-side JS from Xe/wasm3 branch
Xe Jun 15, 2026
5b80566
test(wasm): reorg benchmarks so they run in alphabetical order
Xe Jun 15, 2026
e10f690
chore: update license disclaimer banner for LibreJS
Xe Jun 15, 2026
68c71c7
chore(web/wasm): clean up unused import
Xe Jun 15, 2026
7bb3a5e
docs(wasm): add WASM challenge docs
Xe Jun 15, 2026
a988fd5
feat(challenge): import wasm challenges, change Impl interface to add…
Xe Jun 15, 2026
25bc3d5
ci: add rust-specific CI
Xe Jun 15, 2026
2d5b115
chore: use new wasm checks in default configuration
Xe Jun 15, 2026
f9acdf7
chore: remove local docker test, it's complicated to test outside of …
Xe Jun 15, 2026
e1dad6e
Merge branch 'main' into Xe/wasm4
Xe Jun 15, 2026
2a3a7a9
chore: confirm wasm checks work with an end to end test
Xe Jun 15, 2026
f3d31a5
ci: apt-get needs sudo in gha
Xe Jun 15, 2026
2ccc4e4
chore(wasm): only rebuild wasm if files changed
Xe Jun 15, 2026
767ed51
chore: update Makefile for rust dependencies
Xe Jun 15, 2026
102f5dd
docs: update CHANGELOG
Xe Jun 15, 2026
58b6546
fix(wasm): better catch and localize wasm unsupported messages
Xe Jun 15, 2026
f61827a
chore(localization): add placeholder wasm translations
Xe Jun 15, 2026
46ff1ac
chore: go mod tidy
Xe Jun 15, 2026
9cc0fdd
fix(scripts/wasm): don't die if you have to build
Xe Jun 15, 2026
650297b
chore: spelling
Xe Jun 15, 2026
9867264
chore(sha256): remove debug code
Xe Jun 15, 2026
c633231
chore: spelling
Xe Jun 15, 2026
8fbc0fa
chore(default-config): it's nibbles
Xe Jun 16, 2026
d8d3084
chore(wasm): version bumps
Xe Jun 16, 2026
a481454
fix(wasm): mend review feedback
Xe Jun 16, 2026
d159f5b
chore: mend various bits of review feedback
Xe Jun 16, 2026
3e392fd
fix(wasm): cleanly handle zero-length data pointer
Xe Jun 16, 2026
e5f5724
fix(wasm): ensure handling of zero-length data slice
Xe Jun 16, 2026
a5e4a6b
chore(js): small style cleanups
Xe Jun 16, 2026
9b2771a
test: write adversarial tests for the wasm challenge
Xe Jun 16, 2026
0214e99
ci(rust): only trigger on main/PR to main
Xe Jun 16, 2026
f139e42
test(challenge/wasm): expand to all methods
Xe Jun 16, 2026
6a90871
style(argon2id): fix variable names and outdated comments
Xe Jun 16, 2026
305d9aa
fix(wasm/hashx): make hashx solvable on any input
Xe Jun 16, 2026
96fd1c6
style(wasm/sha256): mend update check
Xe Jun 16, 2026
c53e50f
style(wasm): fix go vet errors
Xe Jun 16, 2026
1864bdc
style(worker/wasm): reduce typecast complexity
Xe Jun 16, 2026
d9145d9
docs(wasm): i've tried so hard to make this work but it won't
Xe Jun 17, 2026
74817dc
feat(utils): add wazero-exec tool for running wasm-opt / wasm2js
Xe Jun 17, 2026
505bb36
chore(utils): add fixed builds of wasm2js/wasm-opt v130
Xe Jun 17, 2026
092f4d6
ci: add binaryen to ci closure
Xe Jun 17, 2026
b046d29
style(scripts/build_wasm): run formatter
Xe Jun 17, 2026
7e8a8fa
style(wazero-exec): oops
Xe Jun 17, 2026
f97429b
chore(wasm2js): add wasm2js build plane
Xe Jun 17, 2026
baf5046
feat(wasm): add support for wasm2js modules
Xe Jun 17, 2026
99308c4
chore(scripts/wasm2js): enhance laziness
Xe Jun 17, 2026
fb2101f
ci: use wasmtime instead of binaryen, dogfood our binaries hard
Xe Jun 17, 2026
ef77a53
docs(wasm): document the fact that wasm2js is slow and quiet
Xe Jun 17, 2026
fb04172
fix: rip out hashx for now, it never terminates on arm64
Xe Jun 17, 2026
a371fac
fix(wasm): use interpreter on GOOS=arm64, will file bug with wazero
Xe Jun 17, 2026
8771c16
revert: return hashx
Xe Jun 17, 2026
36d4153
doc(wasm2js): record the tale of woe
Xe Jun 17, 2026
84a3afa
fix(wasm2js): make builds reproducible
Xe Jun 18, 2026
46ce428
perf(wasm): use interpreter for a few checks on GOARCH=arm64
Xe Jun 18, 2026
073fa6c
fix(wasm2js): determinism-maxx
Xe Jun 18, 2026
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
20 changes: 20 additions & 0 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ Caddyfile
caninetools
Cardyb
CAs
cdylib
celchecker
celphase
cerr
Expand All @@ -65,8 +66,10 @@ chibi
cidranger
ckie
CLAUDE
clippy
cloudflare
cloudsolutions
codegen
Codespaces
confd
containerbuild
Expand Down Expand Up @@ -106,6 +109,7 @@ ellenjoe
emacs
embe
enbyware
equix
etld
everyones
evilbot
Expand All @@ -122,12 +126,14 @@ FCr
fcrdns
fcvg
fediverse
fff
ffprobe
fhdr
financials
finfos
Firecrawl
flagenv
fnames
Fordola
forgejo
forwardauth
Expand Down Expand Up @@ -161,6 +167,7 @@ grw
gzw
Hashcash
hashrate
hashx
hdr
headermap
healthcheck
Expand All @@ -171,10 +178,12 @@ Hetzner
hmc
homelab
hostable
hostimport
HSTS
htmlc
htmx
httpdebug
httponly
huawei
hypertext
iaskspider
Expand All @@ -193,6 +202,7 @@ iptoasn
isp
iss
isset
iterand
ivh
Jenomis
JGit
Expand All @@ -207,6 +217,7 @@ Keyfunc
keypair
keypairreloader
KHTML
kilohashes
kinda
kpr
KUBECONFIG
Expand All @@ -226,6 +237,7 @@ LLU
loadbalancer
lol
lominsa
lto
malware
mcr
memes
Expand Down Expand Up @@ -311,6 +323,7 @@ runlevels
RUnlock
runtimedir
runtimedirectory
RUSTFLAGS
Ryzen
sas
sasl
Expand All @@ -328,6 +341,7 @@ shirou
shoneypot
shopt
Sidetrade
simd
simprint
sitemap
sls
Expand Down Expand Up @@ -360,22 +374,27 @@ telegrambot
templ
templruntime
testarea
tetratelabs
Thancred
thoth
thothmock
Tik
Timpibot
TLog
traefik
trimpath
trunc
txn
uberspace
Unbreak
unbreakdocker
unifiedjs
uninlined
unmarshal
unparseable
updown
usecase
usize
uvx
UXP
valkey
Expand All @@ -389,6 +408,7 @@ vnd
VPS
Vultr
WAIFU
wazero
wcg
weblate
webmaster
Expand Down
14 changes: 9 additions & 5 deletions .github/workflows/asset-verification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,21 @@ jobs:
with:
persist-credentials: false

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "24.11.0"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "1.25.7"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd

- name: install node deps
run: |
Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/docker-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ permissions:
contents: read

jobs:
build:
ko_pr:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
Expand All @@ -21,17 +21,24 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Setup `wasmtime`
uses: bytecodealliance/actions/wasmtime/setup@9152e710e9f7182e4c29ad218e4f335a7b203613 # v1.1.3

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "24.11.0"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "stable"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd

- uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9

Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
pull-requests: write

jobs:
build:
ko_prod:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
Expand All @@ -27,10 +27,8 @@ jobs:
fetch-depth: 0
persist-credentials: false

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Setup `wasmtime`
uses: bytecodealliance/actions/wasmtime/setup@9152e710e9f7182e4c29ad218e4f335a7b203613 # v1.1.3

- name: Set lowercase image name
run: |
Expand All @@ -42,6 +40,15 @@ jobs:
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "stable"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd
- uses: ko-build/setup-ko@d006021bd0c28d1ce33a07e7943d48b079944c8d # v0.9

Expand Down
15 changes: 11 additions & 4 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,24 @@ jobs:
with:
persist-credentials: false

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Setup `wasmtime`
uses: bytecodealliance/actions/wasmtime/setup@9152e710e9f7182e4c29ad218e4f335a7b203613 # v1.1.3

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "24.11.0"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "stable"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd

- name: Cache playwright binaries
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/package-builds-stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:
actions: write

jobs:
package_builds:
package_builds_stable:
#runs-on: alrest-techarohq
runs-on: ubuntu-24.04
steps:
Expand All @@ -20,17 +20,24 @@ jobs:
fetch-tags: true
fetch-depth: 0

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Setup `wasmtime`
uses: bytecodealliance/actions/wasmtime/setup@9152e710e9f7182e4c29ad218e4f335a7b203613 # v1.1.3

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "24.11.0"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "stable"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd

- name: install node deps
run: |
Expand Down
15 changes: 11 additions & 4 deletions .github/workflows/package-builds-unstable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,24 @@ jobs:
fetch-tags: true
fetch-depth: 0

- name: build essential
run: |
sudo apt-get update
sudo apt-get install -y build-essential
- name: Setup `wasmtime`
uses: bytecodealliance/actions/wasmtime/setup@9152e710e9f7182e4c29ad218e4f335a7b203613 # v1.1.3

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: "24.11.0"
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version: "stable"
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown

- name: CLI deps
run: |
sudo apt-get update
sudo apt-get -y install brotli zstd

- name: install node deps
run: |
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: "Rust tests"

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
rust-test:
name: cargo test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
cache: false
target: wasm32-unknown-unknown
- run: cargo test --all-features

# Check formatting with rustfmt
rust-formatting:
name: cargo fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
# Ensure rustfmt is installed and setup problem matcher
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
with:
components: rustfmt
cache: false
target: wasm32-unknown-unknown
- name: Rustfmt Check
uses: actions-rust-lang/rustfmt@559aa3035a47390ba96088dffa783b5d26da9326 # v1.1.1
Loading
Loading