What parts of Atom are desktop dependent?


Note: I’ve seen the other threads about Atom’s developers wanting to stay on the desktop. This is not a repeat of that question.

I’m looking to work with some friends on putting atom in a browser. If any of the contributors or core members could point out the areas we’ll have to change in order to get it working outside of a file system environment I would be very appreciative.


I would think that 90% of the core modules and packages expect Node functionality.


You can use browserify to have a lot of node’s core modules available in the browser. That doesn’t include fs and some others, which a lot of Atom’s functionality depends upon.


If I can successfully browserify to handle the node API, then I should be able to overwite the fs to point to an adapter-pattern and then work on writing adapters to different interfaces, like github or localstorage.


That would be awesome. I’ve daydreamed about the same thing. You’ll have to implement the the shim version of every fs method and some other internet-related modules.

You would be famous for porting Node to the browser.


I think one serious restriction will always be the plethora of packages that you won’t have control over in terms of Node requirements.
So either you’ll be forced to restrict packages for your web-based editor to just those you have customized with your own browserify framework.
Or you come up with some kind of full mockup layer, which can simulate transparent responses to any and all node-related calls from any package.
I don’t know if browserify is enough for that?

If you can pull it off, I’d love to see it.


That’s honestly not a terrible thing, if I can get it working at all, so I’d probably end up doing some parts of A and some parts of B.


Looks like a company is already working on this and will be FOSSing the result. Thanks for the assist anyways.


Great. Where can I read about it?


I can’t find anywhere about it too.


I was able to install and run NodeJS on Nexus 6P (running Android 6.0.1) with the Termux APP :slight_smile: