Publish Linux ARM64 native npm package
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- javascript, linux, node.js
- Ambito
- build-system, devops, release
Direzione di ricerca
Inizia tracciando il loader dei binding nativi del package principale, i metadati generati, le dipendenze opzionali e il workflow che compila e pubblica i package per piattaforma. Aggiungi il package Linux ARM64 GNU e la configurazione della release, quindi verifica che un container Node linux/arm64 basato su Debian importi duroxide e che le immagini Docker multiarchitettura funzionino senza un override della piattaforma.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Please publish a Linux ARM64 GNU native npm package for duroxide so Node.js applications can run in linux/arm64 containers.
The main duroxide package currently attempts to resolve a Linux ARM64 native binding as:
duroxide-linux-arm64-gnu
but that package is not published, so applications crash at import time on Linux ARM64.
Why this matters
PilotSwarm publishes a starter Docker appliance built from a Debian-based image (node:24-bookworm-slim). We tried publishing the image as multi-arch (linux/amd64,linux/arm64) so Apple Silicon users could run:
docker pull affandar/pilotswarm-starter:latest
docker run ... affandar/pilotswarm-starter:latest
Docker correctly selected the linux/arm64 image on Apple Silicon, but the portal and workers crashed immediately because importing duroxide failed to load the missing Linux ARM64 native package. The browser then saw an empty response from the starter appliance because the runtime processes were dead.
Observed behavior
On linux/arm64, Node fails while resolving the native package:
Cannot find module duroxide-linux-arm64-gnu
The practical result is that a multi-arch Docker image cannot safely advertise linux/arm64 even though the rest of the Node.js app and base OS image are compatible.
Expected behavior
The published duroxide package should support Linux ARM64 by including a native optional dependency/package for:
package: duroxide-linux-arm64-gnu
target: aarch64-unknown-linux-gnu
platform: linux
arch: arm64
libc: glibc
Then the main package loader/generated native binding metadata should resolve process.platform === "linux" and process.arch === "arm64" to that package.
Requested change
- Add and publish
duroxide-linux-arm64-gnu. - Add it as an optional dependency of the main
duroxidenpm package. - Ensure the native binding loader recognizes Linux ARM64 GNU.
- Publish a new
duroxiderelease containing the main package and the new native package.
A duroxide-linux-arm64-musl package would also be useful later, but linux-arm64-gnu is the blocker for Debian/Ubuntu-based Node containers.
Current workaround
PilotSwarm had to revert its starter Docker image back to linux/amd64 only and document this Apple Silicon workaround:
docker pull --platform linux/amd64 affandar/pilotswarm-starter:latest
docker run --platform linux/amd64 ... affandar/pilotswarm-starter:latest
That works under Docker Desktop emulation, but it is slower and prevents a seamless default Docker experience on Apple Silicon.
Validation once fixed
After a duroxide release with duroxide-linux-arm64-gnu, downstream images should be able to publish:
platforms: linux/amd64,linux/arm64
and docker pull <image>:latest should work on Apple Silicon without a --platform override.
- Lingua principale
- JavaScript
- Stelle
- 36
- Fork
- 20
- Merge medio
- 2g 11h
- PR unite (30g)
- 4
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/duroxide-node
-
Expose orchestrator_lock_timeout in JsRuntimeOptions (Rust supports it, Node bindings do not) Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/duroxide-node#11 · 3 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
microsoft/duroxide-node#16 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
Tutte le issue di microsoft/duroxide-node
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
HarperFast/skills#96 ·
-
[Block] Latest Posts [Type] Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Daemon passes --experimental-wasm-jspi unconditionally on Node >= 24; Node 26 rejects the flag Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Automattic/studio#4908 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
sugarlabs/musicblocks#8847 ·