最近在个人服务器上尝试搭建了 OxiCloud,这是一个基于 Rust 开发的轻量级文件管理方案。作为曾经长期使用 NextCloud 的用户,我想分享这个项目的开发背景和使用体验。
项目背景
由于 NextCloud 在低配置设备上的资源消耗较高,我尝试寻找 Rust 重写的替代产品。OxiCloud 的设计目标是保持基本文件管理功能的同时,降低内存占用。目前测试环境下,空载内存消耗稳定在 45MB 左右。
核心特性
- • 简洁的 Web 界面支持中英双语
- • 基于 PostgreSQL 的存储后端
- • 支持基础的文件上传/下载管理
- • 响应式设计适配移动设备
- • 内置数据库迁移工具
技术实现
项目采用典型的 Rust Web 开发栈:
- • Actix-web 作为 HTTP 框架
- • SQLx 处理数据库操作
- • Tera 模板引擎渲染界面
- • 启用 LTO 编译优化后,二进制文件体积控制在 12MB
# 基础部署命令
git clone https://github.com/DioCrafts/oxicloud.git
cp .env.example .env # 配置数据库信息
cargo build --release
开发进展
当前版本 (0.1.0) 已实现:
- • 文件目录管理
- • 多语言支持
- • 基础身份验证
正在开发中的功能:
- • 回收站机制(预计下个版本发布)
- • WebDAV 协议支持
- • 文件分享链接生成
适用场景
经过实测,这个方案较适合:
-
- 树莓派 4B 等 ARM 设备
-
- 仅需基础文件同步的开发者
-
- 作为家庭媒体服务器的管理前端
-
- 需要快速部署的原型项目
项目源码地址: https://github.com/DioCrafts/OxiCloud。对于 Rust 开发者,代码库中包含多个模块化设计示例,特别是数据库连接池的实现值得参考。