Technologies used in Etcher
masterEtcher is built using the following major frameworks and libraries:
- Runtime/Framework: Electron, NodeJS
- State Management: Redux, ImmutableJS
- Styling: Sass
- Testing & Documentation: Mocha, JSDoc
repository·master·Indexed 13 days ago
https://github.com/balena-io/etcherA tool for safely flashing OS images to SD cards and USB drives. Version 2.1.6 features a modular architecture using Electron and NodeJS, designed to prevent accidental writes to hard drives and ensure data integrity.
Etcher is built using the following major frameworks and libraries:
Etcher follows a "lego block approach" rather than being a monolithic project. The core functionality is split into decoupled modules, allowing logic to be reused by other applications and making the system more maintainable.
Key architectural components include:
Etcher performs byte-by-byte copies without transformations. Consequently, images that require special handling to become bootable (such as Windows images) will not work out of the box.
For these images, use specialized software:
To remove Etcher installed via the AUR, use your AUR helper's remove command.
yay -R balena-etcherEnsure Etcher handles drive unmounting correctly:
Etcher is available via the Arch User Repository (AUR). You can install it using an AUR helper like yay.
yay -S balena-etcherTo install Etcher on Debian or Ubuntu-based distributions (x86/x64), download the .deb file from the GitHub release page and use apt to install it locally.
sudo apt install ./balena-etcher_******_amd64.debTo prevent the AppImage from prompting you to register a desktop shortcut, you can either create a dummy file in one of the following locations:
$HOME/.local/share/appimagekit/no_desktopintegration/usr/share/appimagekit/no_desktopintegration/etc/appimagekit/no_desktopintegrationAlternatively, set the SKIP environment variable to 1 when running the AppImage:
SKIP=1 ./Etcher-linux-<arch>.AppImageThe flashing process must be resilient to interruptions. Ensure the following behaviors:
When the application is interrupted, the child writer process (the elevated process responsible for writing) must not remain alive. Test these scenarios:
SIGINT or SIGKILL.Ctrl-C while flashing.You can install Etcher on Windows using the Chocolatey package manager.
choco install etcherEtcher runs on Wayland via the XWayland Server. On most mainstream GNU/Linux distributions, this works automatically. If Etcher fails to run, ensure the xwayland.so module is loaded in your weston.ini configuration file.
[core]
modules=xwayland.so