conaticus/FileExplorer

GitHub: conaticus/FileExplorer

一款采用 Rust 和 React 构建的跨平台极速文件浏览器,通过 ART 算法和 LRU 缓存实现毫秒级文件搜索。

Stars: 1684 | Forks: 122

# 🚀 快速文件浏览器 Rust Logo [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) **一个使用 Rust 和 Tauri 构建的快速文件浏览器** Fast Search Feature
## ✨ 功能 - **🚀 极速搜索**:多种搜索算法,响应时间约 15ms,而 Windows 资源管理器需要 3 分 45 秒 - **🔍 高级搜索引擎**: - 基于 ART(Adaptive Radix Tree)实现的快速模糊搜索 - 采用 LRU 缓存以实现最佳性能 - 针对不同用例的多种搜索算法 - **📁 全面的文件操作**:复制、移动、删除、重命名,并提供强大的错误处理 - **🌐 SFTP 支持**:完整的远程文件系统操作,包括浏览、上传和下载 - **🔐 高级权限**:文件和目录权限管理 - **📊 文件元数据**:全面的元数据查看和管理 - **🔨 文件哈希**:生成 MD5、SHA2 和 CRC32 哈希以验证文件完整性 - **📄 文件模板**:用于创建新文件的模板系统 - **👁️ 文件预览**:内置多种文件类型的预览系统(类似 spotlight) - **💾 卷操作**:驱动器管理和卷操作 - **⚙️ 可自定义设置**:丰富的配置选项 - **🎨 现代 UI**:基于 React 的界面,带有上下文菜单和响应式设计 ## 🔍 当前状态 具备跨平台兼容性,支持所有常见的 Linux 发行版、macOS 和 Windows 这些平台均受到 Tauri 支持。如果您有兴趣做出贡献,欢迎加入 Connaticus 的 [discord 频道](https://discord.com/invite/dnVJQtNXjr),或者给我或我的团队留言。 ## 🏗️ 架构 这是一个基于 Tauri 的应用程序,采用 **Rust 后端** 和 **React 前端**: ### 后端 - **搜索引擎**:带有 LRU 缓存的多种算法 - **文件系统操作**:本地和 SFTP 文件操作 - **命令系统**:用于不同操作的模块化命令处理器 - **错误处理**:集中的错误管理,具有标准化的错误代码 (401-500) - **Feature Flags**:丰富的 Cargo 特性,适用于不同的构建配置 ### 前端 - **Provider 模式**:用于状态管理的分层上下文 providers - **现代 UI**:基于组件的架构和自定义 hooks - **响应式设计**:针对不同屏幕尺寸的自适应布局 ## 即将推出 - 带有缓存服务的实时文件监控 - 搜索/缓存进度指示器 - 增强的终端集成 # 🛠️ 安装 我们的计划是为受支持的操作系统或常见的包安装器提供安装程序。 遗憾的是,我们在使用 Tauri 创建安装程序时遇到了一些严重的问题。在 `dist-builds` 下提供了一些适用于 Linux 的安装程序。未来将提供适用于 macOS、Linux 和 Windows 的即用型软件包,在此之前,请您自行从源码进行编译。 ## 从源码安装 ### 从源码安装的前提条件 - [NodeJS](https://nodejs.org/)(稳定版) - [Rust](https://www.rust-lang.org/)(稳定版) - [Tauri CLI](https://tauri.app/v1/guides/getting-started/prerequisites/)(版本 >2.4.0) - [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html)(随 Rust 一起提供) - [Vite](https://vitejs.dev/guide/#scaffolding-your-first-vite-project)(随 Tauri CLI 一起提供) 其他必需的依赖项会由 Tauri CLI 自动安装。如果未能安装,请 联系我们。 ### 通过编译源码进行安装 请注意,在 macOS 上,您需要安装带有构建工具的 XCode。 ``` # 安装 Tauri CLI cargo install tauri-cli # The version should be >2.4.0 if not already installed # 生产环境构建 cargo tauri build ``` 进入 build 目录并运行生成的二进制文件。该二进制文件位于 `FileExplorer/src-tauri/target/release/bundle/` 中。二进制文件的名称为 `file-explorer` 或 ### 🐧 Linux 在 Linux 下,给定的命令会在 `FileExplorer/src-tauri/target/release/bundle` 文件夹中生成 `.deb`、`.rpm` 和 `AppImage` 文件。请选择适合您发行版的格式。 您可以直接运行 AppImage、二进制文件,或者安装 `.deb` 或 `.rpm` 包。 #### 对于 `AppImage` ``` #Make sure the image is runnable chmod +x yourapp-x.y.z.AppImage #Run the image. After that it should behaving like a native application ./yourapp-x.y.z.AppImage ``` 建议使用在 `FileExplorer/src-tauri/target/release/src-tauri` 中创建的二进制文件。赋予 其可执行权限,然后从终端运行它。您也可以将其放入您的用户 二进制文件夹(例如 `~/bin`)中,并将其添加到您的 PATH 环境变量中。 ### 🍎 macOS ``` # 安装 Tauri CLI cargo install tauri-cli # The version should be >2.4.0 if not already installed # 生产环境构建 cargo tauri build ``` Tauri 会在文件夹 `FileExplorer/src-tauri/target/release/bundle/macos/` 下生成 `.dmg` 或 `.app` 包。 建议使用在 `FileExplorer/src-tauri/target/release/src-tauri` 中创建的二进制文件。赋予 其可执行权限,然后从终端运行它。您也可以将其放入您的用户 二进制文件夹(例如 `~/bin`)中,并将其添加到您的 PATH 环境变量中。 ### 🪟 Windows 这会为您的系统生成一个安装程序,该程序位于 `FileExplorer/src-tauri/target/release/bundle/msi/` 中。那里应该有一个名为 `file-explorer` 的 `.exe` 或 `.msi` 文件。要安装它,您需要双击该文件并像安装任何其他 应用程序一样进行安装。然后您可以彻底删除 `FileExplorer` 文件夹。 ### 开发环境设置 ``` # 安装 Tauri CLI cargo install tauri-cli # The version should be >2.4.0 # 生产环境构建 cargo tauri build # 运行开发服务器 cargo tauri dev ``` ### 测试和开发命令 该项目使用 Feature Flags 进行不同的配置: ``` # 运行包括长时间运行在内的所有测试 cargo test --features full # 运行 benchmark 功能 cargo test --features benchmarks # 在测试期间启用所有日志 cargo test --features log-all ``` 可用的 Feature 组合: - `full` - 包含长时间测试、基准测试和文件打开在内的所有功能 - `log-search` - 启用搜索进度和错误日志记录 - `log-index` - 启用索引进度和错误日志记录 ## 📸 图片
## 📄 历史 该 Explorer 最初是由 YouTuber [Connaticus](https://www.youtube.com/@conaticus) 发起的项目。他在网上的两个视频中记录了部分开发历程: [我制作了一个极速的文件资源管理器](https://youtu.be/Z60f2g-COJY?si=PHWogkV1R_wD8dza) 和 [我是如何毁掉我的 Rust 项目的](https://youtu.be/4wdAZQROc4A?si=9ksfN2TcxdDI41BD)。 在 2025 年的 InformatiCup 期间进行了许多修改。这是德国的一项竞赛。 分配的任务是为现有的开源项目做贡献。团队成员包括 [Marco Brandt](https://github.com/CodeMarco05), [Daniel Schatz](https://github.com/xd1i0), [Lauritz Wiebusch](https://github.com/wielauritz), [Sören Panten](https://github.com/SPKonig)。该仓库可以在 [FileExplorer](https://github.com/CodeMarco05/FileExplorer) 下找到。 ## ⚡ 性能 该文件浏览器极其注重性能,基准测试显示相较于原生解决方案有显著提升(在 170,000 个路径上测试): | 操作 | Fast File Explorer | Windows Explorer | | ----------- |:------------------:| :--------------: | | 文件搜索 | ~15ms | 3min 45sec | ### 技术实现 - **多种搜索算法**:快速模糊搜索,ART(Adaptive Radix Tree) - **LRU 缓存**:针对搜索结果的智能缓存 - **Rust 后端**:内存安全,零成本抽象 - **模块化架构**:基于命令并带有 Feature Flags 的系统 ## ⚙️ 配置 该应用程序使用多个配置文件: - `src-tauri/config/settings.json` - 应用程序设置 - `src-tauri/config/meta_data.json` - 元数据配置 - `src-tauri/tauri.conf.json` - Tauri 应用程序配置 - `package.json` - 前端依赖和脚本 ## 📝 许可证 该项目基于 GNU General Public License v3.0 授权 – 有关详细信息,请参阅 LICENSE 文件。 ## 📬 联系方式 有任何问题或反馈?在我们的 GitHub 仓库中开启一个 issue 吧!
标签:MITM代理, React, Rust, Syscalls, Tauri, 可视化界面, 文件管理器, 桌面应用, 模糊搜索, 网络流量审计, 通知系统