Hacker News new | ask | show | jobs
by jrockway 2402 days ago
You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

My favorite Electron app is Balena Etcher. It is "dd" but uses 200MB of RAM. It is AMAZING.

4 comments

> You can include native code in Electron apps. I am not sure it is actually needed in any of the messaging Electron apps (Slack, Discord), but the capability is there.

Discord has options for streaming your game to others, identifying running processes to display games as your status, downloading and launching games, and displaying a chat overlay on top of external game processes.

Some of those can be accomplished in a roundabout way without native code, but I think it's safe to say Discord benefits from that ability.

That is all available in WebRTC.
> That is all available in WebRTC.

Seriously? I thought it was just a networking protocol. Can you please provide some examples so I can dig in further?

* streaming your game to others - I know that there are window capture APIs in browsers now, or at least in WebExtensions[0]. Then you stream the result over WebRTC, makes perfect sense to me.

* identifying running processes to display games as your status - Does WebRTC really have access to inspect running processes? That's horrifying.

* downloading and launching games - By downloading here I meant managing your installed games like an app store. They had everything from 2D games like Hollow Knight to open world 3D games that require a decent amount of horsepower like Saints Row. It looks like they've actually killed this feature, but either way I'm not really sure how WebRTC helps manage installed applications.

* displaying a chat overlay on top of external game processes - I can imagine how you'd accomplish this via WebRTC for games that expose an API to enable it, but rendering on top of an arbitrary game doesn't seem like something WebRTC allows.

[0]: https://chrome.google.com/webstore/detail/chrome-remote-desk...

Hmm, that doesn't seem totally fair - it's 'dd' but with guardrails so that schoolchildren who want to flash raspbian onto an SD card don't accidentally overwrite their boot disk.
I think you can do that without involving Chromium, but I am not well-versed in the ways of full-stack enterprise-ready desktop apps.
> It is "dd" but uses 200MB of RAM. Say no more. I am sold.
Does it actually include any native code, or does it just wrap `dd`?

I tried this app and it was beyond awful. I went back to `dd`.

Apparently it uses some native code to get the necessary permissions on Windows: https://github.com/balena-io/etcher/blob/master/src/os/win32...