Cloudreve 是一个强大的云盘系统,但我在使用时遇到了 web 浏览器无法做到的问题(比如文件批量下载,浏览器只能后台或前端打包,下载下来再解压,而不能一步到位,又比如 文件同步,我想定时自动上传/下载 某某文件(夹),又或者 在某某软件接收到了一个文件,我只需点击分享到其他应用,即可上传到云盘),这时候,我就有了为其开发文件同步工具的想法。
所以,我正在使用 Flutter 为 Cloudreve 开发跨平台的文件同步客户端 Syncreve, 支持 Android iOS Windows macOS Linux.
我明白全平台支持是一个不小的工作量,所以我将这个项目分两部分:
Syncreve:使用 flutter 构建的跨平台 GUI,并对移动端 / PC 进行布局适配优化。
libSyncreve:使用 golang 开发的跨平台库,为 文件操作提供高效稳定的保证。
在移动端,libSyncreve 使用 gomobile 打包为跨平台的运行库,并交由对应平台启动一个持久运行的 Service。
在桌面端,libSyncreve 将会注册为对应系统的可执行二进制服务(linux 使用 systemd,win 使用 services.msc 等...)在后台持久运行
libSyncreve 亦可独自运行,只需实现对应的 cli 指令,无需 gui 也可完成文件传输任务。
Syncreve GUI 使用 gRPC 与 libSyncreve 通信,目前,该服务运行在 localhost 的 39399 端口,不过根据我的计划,将会在近期改为 unix socket ,不占用任何端口,更高效,也更安全。
Syncreve 在设计上就支持多用户 / 多站点 同时工作,在创建同步任务时也是如此,目前同步功能还在规划中,我后续可能会在此处更新。
经过 5天 左右的技术验证,Syncreve 已初步成型,我将会在接下来的时间去完善它。
项目地址为 https://github.com/xkeyC/Syncreve ,使用 GPL 3.0 协议开源。
如果您觉得这正是你需要的,不妨点个 Star?
又或者您有参与本项目的想法,请随时与我联系,我将分享更多细节!