New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move away from electron #118308
Comments
Sounds good!
Notes |
Yea, it's quite an amazing piece of technology. I'm happy to help out making it! |
Oh, tauri is also more secure as it's harder to inject code into applications. |
Also, I'm not entirely sure how VScode renders things, like, if it uses a framework like React or something. AFAIK tauri works by using bundled code from a framework, don't quote me on that tho. |
I'll check that out when I get home. What is the video on? |
@Milo123459 The answer for your question from VS Code team. What frontend framework does VS Code use? |
Oh 😅 |
Ah, I see, it doesn't use a framework. It just needs to be compiled to html/css/js |
Front end framework is different.. we are talking about the native run time of the VS code app . Which i think Tauri is a very compatible rust (most loved language of programmers) framework for... |
I've done some initial research, and realised it's easier than I thought™. I might be able to create a PR soon. |
Should you require a frontend framework with huge Performance and low memory overhead, I'd recommend Solidjs on your journey |
He's trying to replace the web browser wrapper/executable. Not rewrite the entire HTML GUI, lol. |
If rewriting the entire GUI was easier than I thought:tm: then I think someone else would've done that haha. Currently, this is in my personal backlog of things I'm working on, and, is requiring another project I've been working on that can safely (at build-time) convert Electron to Tauri, no config required. It runs tests etc, to ensure it runs the same, but it's pretty massive and taking a while. I'll run this tool on this app when the tool is done. |
@Milo123459 Wow, that's amazing. I hope it goes well. If it is a big task, perhaps open source it (the converter) now to look for collaborators. I bet many Tauri users or even development team would join you. |
Haha, currently 15K LOC into it; it's going pretty well with full interop for all electron APIs. I'll opensource it once it works, and well, I'll test it on VSCode :) |
Woah. 😳 Thumbs up. 👍 |
Update: Started working on it with a friend. Decided to double down and add some more technologies into it (Tauri + GPU acceleration). It's coming together, but, taking a while. This project is massive, and well, hope it'll be used! |
Glad to hear that!
If it would be basically a drop-in replacement or at least support >=50% of main features I'll definitely switch cause I have to run very low-end devicss from time to time. |
Drop-in replacement; one command and generates it for you. It runs all the tests to ensure the app runs smoothly and stuff like that. |
@Milo123459 Any progress? I'm intending to try making a fork. |
Sadly no |
I am very curious about the current state too. |
Well, I haven't been able to work on it all that much. I have covid rn which is a bit of a blocker, along with lots of API changes. In the current state of the project, I can't just make it work. I think the best course of action is just manually migrating the vscode repo to use Tauri. |
Tauri uses different browser engines on different platforms, so it'll be Edge/Chromium on Windows, WebKit on macOS, etc. |
Yeah, good point. It'll be like debugging issues on the browser version. Unfortunately, I have had to move away from working on this (a while ago) due to some important IRL things going on for me. If anyone wants to take a stab at this, feel free. |
Would it be easier to change to nutralino.js instead of Tauri? |
|
Now tauri is using https://github.com/tauri-apps/wry - Cross-platform WebView library in Rust |
Always has been |
The references to the webview used on each platform is talking about what wry ultimately uses under the hood |
Milo123459 Any updates? Any draft MRs might also be good. |
Me and a friend have started working on this again. No ETA, but progress is good. |
Hey @Milo123459 it seems the demand for a Rust VSC is significant, would you consider open sourcing? So maybe the community can join in? The VSC team in an issue before marked it as out of scope so it seems like for now this will have to be a community effort If its a matter of monetisation then maybe you could try sponsorships on it I'm sure some money would start trickling in very soon |
Unfortunately, progress has kinda stopped. I don't think I intend on working on this again, but our approach was reading the |
Publish what you have if you can! Even if it’s very incomplete, you’ve don’t some trial and error that will help others figure it out |
Yes please just release the fork. let people have a stab at finishing it |
Can anyone tell me, where I can find the fork? @Milo123459 |
It doesn't seem like @Milo123459 wants to open source their work, or no longer has the ability to do so. Either way it is unfortunate and someone else will need to start this from scratch. |
We never started it other than a few ways of finding out the ASAR file (which is extremely easy) and we were more working on theoretical things. We stopped working on this because we realised this would mean it would be hell to maintain, primarily because of changing APIs all the time. It's not that I don't want to share, it's literally that we have nothing. |
I'd like to start work with this again, I might be an entire newbie to the dev-side of VSCode but I would like to try giving this a shot |
As a first thing, I would like to open a draft PR tagging this issue. I hope this is the process |
Also, seeing how you wanted to do it: our work would be completely useless. You're trying to convert VSCode, we're trying to convert all Electron projects. |
I am inclined to agree, my worries/concern were specifically over VSCode. I would like to make that a separate issue then. That will add more clarity |
@lramos15 I think this issue deals with electron only, @Milo123459 has mentioned it. Please open the closed issue |
No, you've opened a duplicate issue. My project was more advanced but you can use this as an issue for replacing electron in vscode. |
Thanks @Milo123459 I will use this issue as a reference then. |
Hi all, thanks for your interest in exploring an alternative runtime for VSCode desktop. Although Tauri has its advantages over Electron, it is not yet the right alternative for VSCode based on our current desktop integration with the Chromium and Nodejs runtime, you can learn more about our process architecture and some of the customizations made to the runtime for our not too recent Sandbox effort at https://code.visualstudio.com/blogs/2022/11/28/vscode-sandbox. We are following alternative desktop framework projects like Tauri, Flutter, Webview2 etc., but we are not at the point of considering a runtime migration. Please follow our roadmap https://github.com/Microsoft/vscode/wiki/Roadmap for these major updates. |
I think this issue should be left open as a tracking issue. This is not just about Tauri, this is just simply about moving away from Electron. |
Tracking issue will be created when we start exploring alternatives, currently there is no plan in the upcoming milestones. Closing this issue as part of our issue grooming, refs #167999. |
I think we should keep it closed, and just in case REOPEN it when the team will consider a change... Meanwhile if there are updates about the possibilities to make a fork/experimental branch using others technologies the issue might be used as thread |
Hey,
This is not really a feature request, but more of an overall suggestion. I've been interested in something called tauri for a while now, it's basically electron but written in Rust and is extremely lightweight, but not yet stable. It is also a lot more secure.
Moving away from electron and moving to tauri would be a big performance upgrade, allowing for more low-end devices to use VSC.
Obviously, this'd be a lot of work but I think it'd be worth it. I'm pretty sure something inside the
vscode
package for making extensions would have to change. I'd be happy to help if need be.This is not urgent at all, but, would be worth it in my opinion.
The text was updated successfully, but these errors were encountered: