criu
Electron
criu | Electron | |
---|---|---|
14 | 236 | |
2,663 | 112,040 | |
1.7% | 0.4% | |
8.9 | 9.8 | |
11 days ago | 4 days ago | |
C | C++ | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
criu
-
When "letting it crash" is not enough
Checkpoint/Restore I feel is a bigger concept than just saving state. At the zeroth level it's a system that can correctly stop and serialize a running process (as criu https://github.com/checkpoint-restore/criu has shown is a huge pain in the ass to still not be perfect) in a way that can initiated from within the process itself.
The 1st level more-work-but-easier way to do this is to build or use a heavily constrained VM/language you run from within your main application that doesn't allow for most of the hard problems to even exist.
I can't find any ready-made tools to do this that I wouldn't consider an endeavor.
- CRIU – Checkpoint/restore Linux tasks
-
Live Switching Pods to another Node on Resource Limits
That being said the Checkpoint Restore In Userspace project has been around for a number of years and is the closest thing to what you are talking about: taking a linux process on one machine and moving it to another. It is messy but can be done in some cases. There are folks looking at how to integrate CRIU with k8s but it’s all research at this point.
- Criu: Checkpoint/Restore Functionality for Linux
- checkpoint-restore/criu: Checkpoint/Restore tool
- checkpoint-restore/criu: Linux Checkpoint/Restore tool
-
The intersection of shadow stacks and CRIU
I would love to make more use of CRIU. E.g. I considered to use CRIU for my Python preloaded logic (https://github.com/albertz/python-preloaded). Unfortunately, at that point in time, CRIU must be used with root access, which was not an option. However, I see that the PR was merged now, so maybe it works now? (https://github.com/checkpoint-restore/criu/pull/1930)
There is also DMTCP (https://github.com/dmtcp/dmtcp/) but this might have other problems for my use case.
My solution was to use a fork server instead, which works almost equally well. There are not really much downsides with this approach. And this is actually quite simple, and also quite cross-platform (except Windows).
-
Python Preloaded
CRIU currently needs root access for dump/restore. However, there is ongoing work to support a non-root option in https://github.com/checkpoint-restore/criu/pull/1930.
-
How-to "freeze" a process to disk?
There have been multiple checkpointing attempts over the years. Criu is the only one I know of that's still kicking. That's probably your best and only bet.
- I made a plugin to suspend games and apps similar to how consoles do (Deck Suspender)
Electron
-
Release Radar • February 2024 Edition
The team at Electron have been faithfully shipping new releases almost every single month. I think they had Christmas off 🤔. This popular framework has developers writing cross-platform desktop applications using JavaScript, HTML and CSS. The latest update depreciates some process events, and added new modules, APIs, methods, and more. Read into all the changes in the Electron release notes. This month, Electron also introduced a new formal RFC process.
-
The IDEs we had 30 years ago and we lost
VS Code has been crashing at launch in Wayland since more than eight months ago:
https://github.com/electron/electron/issues/37531
-
Design Systems with Web Components
So we talked a lot about the Atomic Design Principle, but you could just use that in any system and start creating. You could have Angular components, React Components, and Vue Components. But if you notice these don't easily work Everwhere. So the solution is to use Web Components because the modern browser can already understand these, and any Front-End framework can then utilize these components. You can use Electron for desktop (Slack, VSCode), PWA for both Android and iOS, and across all browsers Can I Use.
- Settings · Rulesets · electron/electron
-
How I got Wayland, Vulkan, and hardware acceleration working with Figma on Fedora 39.
I'm noticing a significant boost in performance, crisper text, and better power savings. The only shortcoming is that the window which Figma will run on will lose its shadow. This is due to a technical limitation with frameless windows on Linux.
-
Building Apps with Tauri and Elixir
For the longest time, building desktop apps was a daunting task to web developers. That is, until technologies like Electron made creating these apps more approachable to a wider audience. Today, we’ve got a wide array of native applications built with solutions like Electron, Tauri, Capacitor, and many more. While these are great solutions, sometimes configuration can be tricky and the applications we create can become somewhat bloated in terms of memory usage.
-
MS Teams & Electron libwebp 0-Day Vulnerability
Electron patch for version 27: https://github.com/electron/electron/pull/39823
-
CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
It does, see [0]. Fun fact: Signal desktop, which uses Electron under the hood, is running without sandbox on Linux [1][2].
[0] https://github.com/electron/electron/pull/39824
[1] https://github.com/signalapp/Signal-Desktop/issues/5195
[2] https://github.com/signalapp/Signal-Desktop/pull/4381
-
Capturing at Speed of Thought
Turns out, there is an issue with the electron window not returning focus correctly on mac - https://github.com/electron/electron/issues/5495. The trick to solving is to treat quick capture as a screensaver. When closing, you hide it by setting the opacity to 0 and sending hide: command to the first responder.
-
$Home, Not So Sweet $Home
Open since 2016! https://github.com/electron/electron/issues/8124
What are some alternatives?
nyrna - Suspend games and applications.
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
FitM - FitM, the Fuzzer in the Middle, can fuzz client and server binaries at the same time using userspace snapshot-fuzzing and network emulation. It's fast and comparably easy to set up.
dotenv - Loads environment variables from .env for nodejs projects.
Regshot-Advanced - This is a fork of Regshot (original found at https://sourceforge.net/projects/regshot/) with very enhanced functionality.
Eel - A little Python library for making simple Electron-like HTML/JS GUI apps
fpart - Sort files and pack them into partitions
puppeteer - Node.js API for Chrome
DashLoader - Launch at the speed of light.
react-native - A framework for building native applications using React
nginx-link-function - It is a NGINX module that provides dynamic linking to your application in server context and call the function of your application in location directive
cheerio - The fast, flexible, and elegant library for parsing and manipulating HTML and XML.