Replies: 4 comments 5 replies
-
@JimBuzbee WDYT maybe also creating issues there? Or is there any page with "known incompatibilities"? |
Beta Was this translation helpful? Give feedback.
-
FWIW SO_REUSEADDR is necessary because matter.js uses port 5353 for MDNS, which is typically already used by a system MDNS implementation (e.g. Avahi on Linux). Multicast is also necessary for MDNS. Improved node shims on deno are one approach to getting matter.js online... Other approaches (albeit more effort on matter.js side):
Neither is likely to make it onto our roadmap soon but figured I'd mention for others interested in deno support. |
Beta Was this translation helpful? Give feedback.
-
Still waiting on my PR to support port reuse, but it won't solve most problems. I've played around with it a bit more trying to upgrade the deno node shims to take advantage of the deno internal udp routines. The matter.js example runs and I get some message interaction between, controllers and a deno/matter.js device while attempting to pair, but I get many errors mostly related to IPV4/IPV6 multicast, both from within deno and within matter.js. Since I don't know much about deno architecture, Rust, IPV6, multicast and TypeScript, I've probably gone about as far as I can :-) Typical errors from within deno code:
Typical errors from within matter.js code:
|
Beta Was this translation helpful? Give feedback.
-
Just to document, here are some of the current errors that we see when using deno:
2025-06-18 09:20:20.165 INFO UdpMulticastServer en0: Not implemented: udp.UDP.prototype.setMulticastInterface
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
In order to to run one of the matter.js examples under deno, I had to change imports of the standard node modules to be of the form: 'import fs from "node:fs"' , i.e. add a "node:" prefix. The example ran for a bit but ultimately failed with an error of "bind EADDRINUSE 0.0.0.0:5353" which is related to address reuse on a udp socket that evidently deno doesn't support.
As a further quick-hack test, I rebuilt deno with a modification that defaulted all udp sockets to add the reuse flag. This made the matter.js example run further, but it ultimately failed again with: "Not implemented: udp.UDP.prototype.setBroadcast". It appears that deno's udp implementation is not sufficient for matter.js yet.
Beta Was this translation helpful? Give feedback.
All reactions