Xplorer, a modern File Explorer that was written using TypeScript, has its performance improved on the recent release
Tags: typescript, showdev, rust, xplorer
Published: 2021-11-22 12:50:22

![Xplorer dark](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qk2o0ygyjvsz2sw61vlu.png)

Hello devs!

About two months ago, I released the first version of Xplorer and wrote a post about it which makes both of the blog and the repository went into trending 🚀. Thanks a lot for it. _Please read this blog before continue reading_

{% post https://dev.to/kimlimjustin/i-wrote-a-fully-functioning-file-explorer-using-typescript-1e4n %}



{% details **What is Xplorer?**  (_click to expand_) %}

Xplorer is a file explorer built from ground-up to be fully customizable. And even without any customization, it already looks modern!

Xplorer is a cross-platform application built using [Tauri](https://tauri.studio), and you can run it on Windows, MacOS, or Linux without having much trouble. One of the key feature is Xplorer allows you to preview the files you have directly inside Xplorer. And it's not only limited to picture or document preview, but also video preview.

To summarize, Xplorer's features contain:

-   It looks modern
-   Easy to use
-   Cross-platform
-   [File Preview](https://xplorer.vercel.app/docs/guides/operation/#preview-file), even for videos!
-   Customizable
-   Supports multiple tab
-   Most importantly, Free and Open Source Software(FOSS), which means you can change components inside if you see fit

Xplorer is currently under heavy development. You can give your suggestions and feedbacks in our [Discussions](https://github.com/kimlimjustin/xplorer/discussions/) page. If you feel comfortable in writing code using Typescript and Rust, we highly encourage you to [contribute to this project](https://xplorer.vercel.app/community/Contributing/).

{% enddetails %}


{% details **Some Screenshots** (_click to expand_) %}
![Xplorer on Garuda Linux with Light+ theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ntyptgs99c479xwvcmo6.png)
![Xplorer on Windows with Dark+ theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e6mryvlcbt7szd7gaigp.png)
![Xplorer on macOS with Light+ theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8dz9gb8jg1gono0k13ff.png)
![Xplorer on Windows with Dark theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/903v4ectksohiuz8ly7k.png)
![Xplorer on Windows with Light theme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ip5fm7y1ecsqa49xbl6m.png)
 
 
{% enddetails %}

During that period, I received many inputs regarding the performance of Xplorer, I actually realized this when first developing Xplorer and have no clue to improve it because I didn't know any other framework for developing desktop application using JS Stack besides Electron at that time until some people suggesting me using [Tauri](https://tauri.studio)

![_One of many suggestions_](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4jumrwyqpuziwkecoihu.png)

And soon, I tried it and boom 💥! The performance went rocket (although some of the features may be not as fast as the native one) as it now relies on Rust as the backend to handle file operation while it still relies on TypeScript, SCSS, HTML for the frontend. The installer size, memory consumption has drop a lot when the performance increased after migrating it to Tauri.

The new version of Xplorer is now a polygot program as it uses Rust for handling file operation while the HTML, SCSS, and TypeScript (which is transpiled to JS and CSS) still maintain the same for the frontend look.

## Pros
* Improve performance and memory usage
* Decrease installer size up to 90%
* Improve startup speeds (from ∼ 1.52 s to ∼ 1.28 s) (_tested on i7-9700 32GB)
* Thread safe
* It's cross platform
* Non-ASCII drive name supports (thanks to [`sysinfo`](https://docs.rs/sysinfo/0.21.1/sysinfo/) crate)

## Cons
* Some features like dragging file from Xplorer to another application has gone as Tauri has no this feature.(https://github.com/tauri-apps/tauri/issues/2593)
* Opening folder might be slower than on Electron for some cases because Xplorer need to communicate to Rust

Overall, using Tauri is much better than Electron IMO, especially when using the app in less computing capability computers. Also, Tauri also let user to develop cross platform application with webpages (HTML, CSS, JS) just like Electron does but more lightweight.

## Another improvement/changes of Xplorer
* Introduce new icon 
* Add ability to continue the previous session on startup 🚀
* More personalized settings ⚙️
* Supports previewing almost all programming languages with syntax highlighting 👁️‍🗨️
* Improve some functions algorithms 🚀

**More detailed changelog:** https://github.com/kimlimjustin/xplorer/releases/tag/v0.2.0

## Notable features
- File Previewing
  ![Xplorer supports file previewing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pd1mwdx7t8gyqkg6s0kq.png)
- Looks Modern
  ![Xplorer looks modern](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o659mi8njqfvggmy46zj.png)
- Support Multiple Tab
   ![Xplorer support multiple tab](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uc9tdctjttgi0a4xc3zk.png)
 

## Links
GitHub link: https://github.com/kimlimjustin/xplorer
Documentation site: https://xplorer.vercel.app
Discord: https://discord.gg/MHGtSWvfUS
Install it now: https://github.com/kimlimjustin/xplorer/releases/tag/v0.2.0

Any comments will be appreciated, also, don't forget to drop a star on GitHub if you like to :D

Happy coding! 🎉