| ▲ | nl an hour ago | |||||||
This seems either wrong or very uncharitable. > Perry exposes a faithful subset of Node.js’s stdlib HTTP server modules on top of hyper + rustls + tokio-tungstenite. The whole shape — handler signature, IncomingMessage / ServerResponse properties + methods, TLS opts, ALPN-negotiated HTTP/2, WebSocket upgrade dispatch — works unmodified, so unmodified Node servers (Express / Koa / Polka / hono via @hono/node-server / etc.) compile and run natively[1] It's pretty standard for "no runtime" to mean nothing on the device you install the compiled target app. I think iOS development still needs Ruby for Pod installation but no one says Swift apps need a Ruby runtime for example. | ||||||||
| ▲ | ventana an hour ago | parent | next [-] | |||||||
Well, I did indeed spend some time playing with it before writing my comment. I first tried to compile the TypeScript project I'm working on, and it happens to be an Express server. After some minor unrelated fixes required (Perry does not understand importing "fs/promises", so I fixed it to import "fs" and then taking .promises) it said it needs JS runtime, and the smallest repro I found was
which gives
Maybe it's because Express is written in JavaScript with external types from @types/express, that would explain why it might need JS runtime, but it does not make things easier for me. | ||||||||
| ||||||||
| ▲ | pjmlp 32 minutes ago | parent | prev [-] | |||||||
> It's pretty standard for "no runtime" to mean nothing on the device you install the compiled target app. Only by layman that don't understand compilers. | ||||||||