Why We Decided to Rewrite S3Explorer: A Performance Revolution from Electron to wxWidgets
1. To Our Users: A Difficult but Necessary "Breakup"
First and foremost, we would like to express our sincerest apologies to all loyal users of S3Explorer.
We are well aware that for a productivity tool, stability is paramount. Choosing to completely rewrite the legacy version at this time means that the familiar Web-based interaction experience will change, and it may even introduce new bugs or cause some old features to become temporarily unavailable during the initial phase.
However, this decision is the result of several months of careful consideration by the team. As the scale of managed object storage moves from GB to the PB level, the Electron-based architecture has hit its performance ceiling. For a long-term smooth experience, we must undergo this painful "metamorphosis." Thank you for your patience and understanding.
2. Breaking the Deadlock: Why wxWidgets instead of Electron?
The most core change in this rewrite is the complete replacement of the underlying engine. We have entirely removed Electron's massive Chromium kernel and Node.js runtime, switching instead to a full reconstruction using C++ combined with the wxWidgets framework.
This shift has brought about a qualitative leap in all aspects:
- Native Component Invocation: These are no longer "simulated" buttons, but direct calls to native controls from Windows Win32, macOS Cocoa, and Linux GTK.
- Instant Response: By eliminating the abstraction overhead of the Web rendering layer, UI response times have reached the microsecond level.
- Low Power Consumption: Memory usage and CPU consumption have been significantly reduced, ensuring your computer remains cool and smooth even when handling large-scale transfers.
3. Deep Dive: A Comprehensive Leap in Performance
3.1 C++ & wxWidgets: The Foundation for High-Quality Products
Compared to VM-based Web technologies, C++ combined with wxWidgets allows us to provide users with a much higher quality product:
- No Memory Fragmentation Pressure: wxWidgets allows us to manage resources manually and precisely, avoiding the common memory leaks and lag after long-running sessions typical of Electron.
- True Multi-threading Parallelism: When performing S3 multi-path concurrent scans, we can utilize native C++ threads to operate directly on the file system without passing through the Node.js event loop.
- Native System Integration: Better support for system context menus, native file dialogs, and OS accessibility features.
3.2 Package Size: Saying Goodbye to the Bloated Browser Kernel
By removing nearly 100MB of browser kernel code, the size of the new version has been qualitatively optimized.
| Platform | Old Version (Electron)(0.2.0) | New version (C++ + wxWidgets) |
|---|---|---|
| Windows (.exe) | 80.9 MB | 4.3 MB |
| macOS (.dmg) | 96.9 MB | 4.5 MB |
| Linux (.AppImage) | 107.0 MB | 34.3 MB |
3.3 Resource Usage: Less Consumption, More Power
When mounting a bucket containing 50,000 objects for fast-scroll previewing, the performance of the old and new versions is as follows:
| Metric | Old Version (Electron) | New version (wxWidgets) | Improvement Notes |
|---|---|---|---|
| Idle Memory Usage | ~250 MB | ~25 MB | 10x reduction in baseline overhead |
| High Load CPU Usage | 20% - 40% | 2% - 5% | Native drawing significantly reduces the burden |
| Cold Start Speed | ~4.2 seconds | < 0.4 seconds | Truly instantaneous startup |
4. The Brand New 0.2.1 Version is Now Live
We are thrilled to announce that S3Explorer v0.2.1 has been officially released!
This version contains all the underlying changes mentioned above. While it is currently in a "run-in" period and may still have imperfections, it possesses a much stronger performance DNA. We cordially invite you to download and experience it, and we welcome your feedback through our official channels.
Special Reminder: Since the architecture has been completely rewritten, please be sure to back up your connection configurations before upgrading.
5. A Commitment to Continuous Evolution
This rewrite is only the beginning of our vision. We are committed to continuously improving product quality, using the power of C++ to bring you an ultimate, pure, and professional cloud storage management tool.
Thank you for walking with us on this journey. We are realizing a better user experience, one step at a time.