Popsicle is a Linux utility for flashing multiple USB devices in parallel, written in Rust.

Programming language: Rust
License: MIT License
Latest version: v1.3.0

Popsicle alternatives and similar packages

Based on the "Applications written in Rust" category.
Alternatively, view Popsicle alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Popsicle or a related project?

Add another 'Applications written in Rust' Package



Popsicle is a Linux utility for flashing multiple USB devices in parallel, written in Rust.

Build Dependencies

If building the GTK front end, you will be required to install the development dependencies for GTK, usually named libgtk-3-dev. No other dependencies are required to build the CLI or GTK front ends, besides Rust's cargo utility.

For those who need to vendor Cargo's crate dependencies which are fetched from Crates.io, you will need to install cargo-vendor, and then run make vendor.

Installation Instructions

A makefile is included for simply building and installing all required files into the system. You may either build both the CLI and GTK workspace, just the CLI workspace, or just the GTK workspace.

  • make cli && sudo make install-cli will build and install just the CLI workspace
  • make gtk && sudo make install-gtk will build and install just the GTK workspace
  • make && sudo make install will build and install both the CLI and GTK workspaces


Image Selection

[Image Selection](./screenshots/screenshot-01.png)

Device Selection

[Device Selection](./screenshots/screenshot-02.png)

The list will also dynamically refresh as devices are added and removed

[GIF Demo](./screenshots/device-monitoring.gif)

Device Flashing

[Flashing Devices](./screenshots/screenshot-03.png) [Flashing Devices](./screenshots/screenshot-04.png)




Translators are welcome to submit translations directly as a pull request to this project. It is generally expected that your pull requests will contain a single commit for each language that was added or improved, using a syntax like so:

i18n(eo): Add Esperanto language support
i18n(pl): Improvements to Polish language support

Translation files can be found [here](./i18n/). We are using Project Fluent for our translations, which should be easier than working with gettext.

Supported Languages

  • [English](./i18n/en/)
  • [Bangla](./i18n/bn/)
  • [German](./i18n/de/)
  • [Italian](./i18n/it/)
  • [Spanish](./i18n/es/)
  • [French](./i18n/fr/)
  • [Hungarian](./i18n/hu/)
  • [Dutch](./i18n/nl/)
  • [Polish](./i18n/pl/)
  • [Brazilian Portuguese](./i18n/pt-BR/)
  • [Portuguese](./i18n/pt/)
  • [Russian](./i18n/ru/)
  • [Serbian](./i18n/sr/)
  • [Turkish](./i18n/tr/)