conaticus/FileExplorer
GitHub: conaticus/FileExplorer
一款采用 Rust 和 React 构建的跨平台极速文件浏览器,通过 ART 算法和 LRU 缓存实现毫秒级文件搜索。
Stars: 1684 | Forks: 122
# 🚀 快速文件浏览器
[](https://www.gnu.org/licenses/gpl-3.0)
**一个使用 Rust 和 Tauri 构建的快速文件浏览器**
## ✨ 功能
- **🚀 极速搜索**:多种搜索算法,响应时间约 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` - 启用索引进度和错误日志记录
## 📸 图片
[](https://www.gnu.org/licenses/gpl-3.0)
**一个使用 Rust 和 Tauri 构建的快速文件浏览器**
标签:MITM代理, React, Rust, Syscalls, Tauri, 可视化界面, 文件管理器, 桌面应用, 模糊搜索, 网络流量审计, 通知系统