历经三年,proxyee-down下载器作者的开源新作终于发布了,这次支持所有平台使用!

前言

经过近三年的迭代,Gopeed 终于迎来了我觉得比较满意的一个版本 v1.4.3,早在 proxyee-down 停更的时候,我就立下了一个flag要用 Golang 来重写一个下载器:

当时刚接触 Golang 就被深深吸引了,它优秀的网络编程、协程和交叉编译等特性,不经感叹这简直就是开发下载器的天选编程语言,于是就有了这个项目,刚开始的时候想着就做一个类似aria2这样的命令行工具,后来flutter异军突起,我就一直在调研用flutter来开发一个支持所有平台的下载器的可行性,一开始flutter desktop还不是很成熟,我甚至有考虑过用electron做桌面端,flutter做移动端,后来flutter 2.0发布之后,flutter desktop也正式发布了,测了下基本没啥大坑,觉得这是一个很好的机会,就开始把命令行工具改造成GUI,更方便用户使用,最终不出所望,通过 Golang + flutter 的组合,实现了一个支持所有平台的下载器。

相关链接: 官网 -> gopeed.com Github -> github.com/GopeedLab/g...

特性

先来简单的介绍一下 Gopeed 的特性:

  • 支持所有平台,包括windowsmaclinuxandroidioswebdocker命令行工具
  • 同时支持 HTTP(S) / BT / 磁力链 多种下载协议,并且后续会支持更多的下载协议。
  • 支持多协程下载,支持断点续传。
  • 支持暗黑模式和国际化。
  • 对外开放HTTP API,方便定制化开发。
  • 去中心化的扩展系统,可以通过扩展来实现更多的功能,例如:某某网盘下载、某某网站视频下载等等。

扩展系统

为什么说新版本是令我满意的呢?正是因为新版本更新的扩展系统,这意味着用户可以通过扩展来实现更多的功能,例如:某某网盘下载、某某网站视频下载等等,先看两个例子:

  • B 站视频下载扩展:
  • 百度网盘下载扩展:

以上两个扩展都是通过JavaScript来开发的,具体的设计草案可以在这里查看。

基于git去中心化和远程仓库的特性,用户只需要输入一个链接地址,即可安装扩展,并且是扩展也是全平台支持的,这样的扩展系统是不是很酷?

这里有人可能会问了,去中心化的扩展系统要怎么找到扩展呢?这里巧妙利用 Github Topic功能,只要给你的扩展项目仓库打上gopeed-extension的主题标签,然后通过topics/gopeed-extension就可以找到所有的扩展了:

开放生态

Gopeed 目前开放了两种方式来进行定制化开发:

  1. 通过对接 HTTP API
  2. 通过 JavaScript 脚本开发扩展进行增强

Gopeed 的愿景是打造一个丰富的扩展生态,上面的示例只是抛砖引玉,希望有更多感兴趣的开发者参与进来,一起来丰富 Gopeed 的扩展生态。

配套设施

为了更方便的用户参与到 Gopeed 的生态开发,我还开发了一个配套JavaScript库,开源在:gopeed-js

项目使用TypeScript+Rollup+pnpm workspace技术栈,目前已经实现了以下功能:

  • create-gopeed-ext:脚手架工具,可以快速的创建一个扩展项目,详细文档可以在这里查看,使用示例:

    dart 复制代码
    npx create-gopeed-ext@latest
    
    √ Project name (gopeed-extension-demo) ...
    √ Choose a template >> Webpack
    
    Success! Created gopeed-extension-demo at D:\code\study\js\gopeed-extension-demo
    Inside that directory, you can run several commands:
    
      git init
        Initialize git repository
    
      npm install
        Install dependencies
    
      npm run dev
        Compiles and hot-reloads for development.
    
      npm run build
        Compiles and minifies for production.
    
    We suggest that you begin by typing:
    
      cd gopeed-extension-demo
    
    Happy coding!
  • @gopeed/rest: 可以方便的通过 js 调用 Gopeed 的HTTP API,详细文档可以在这里查看,使用示例:

    js 复制代码
    import { Client } from "@gopeed/rest";
    
    (async function () {
      // 创建客户端
      const client = new Client();
      // 调用API创建任务
      const res = await client.createTask({
        req: {
          url: "https://example.com/file.zip",
        },
      });
    })();

开发文档

除了JavaScript库之外,还贴心的提供了RESTFul API文档和SDK Reference文档,提供给用户查阅。

接下来的计划

目前呼声很高的是开发浏览器扩展用于接管浏览器的下载,所以目前优先级会是最高的。

未来还会支持更多的特性,例如:

  • 边下边播
  • DLNA 投屏
  • 更丰富的扩展生命周期
  • ...

最后

感谢期间国内外小伙伴们提交的PRIssue,也很开心今年因为 Gopeed 又登顶了 GitHub Trending:

截止到目前为止,Gopeed 已经有 7.3k+ star,希望能继proxyee-down之后,再拿下一个 1w+ star 的项目。

最后的最后如果你对 Gopeed 感兴趣,欢迎加入我们的开源社区共同建设!

相关推荐
万少2 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
小爬的老粉丝4 小时前
JavaScript 纯前端预览 WPS:先识别容器,再路由解析器
前端·javascript·wps
满栀5855 小时前
状态管理:Redux、Vuex、Pinia 核心区别
前端·javascript·typescript
大龄码农有梦想7 小时前
Vue + BPMN.js + Camunda:搭建企业级流程设计器完整实践
javascript·vue.js·流程设计器·bpmn.js·bpmn·流程审批·工作流设计器
程序员爱钓鱼7 小时前
Go switch 详解
后端·面试·go
Eloudy7 小时前
ReAct 原理简介
前端·javascript·人工智能·react.js·agent·gpu
ZJU_统一阿萨姆8 小时前
【DSH】如何将 DeepSeek Harness 嵌入生产环境?万字解构 DeepSeek Agent Harness 的运行机制与安全边界
前端·javascript·安全
SoaringHeart9 小时前
Flutter最佳实践:Web项目中文字体首次加载乱码问题解决
前端·flutter
程序员老刘9 小时前
Flutter 3.47 更新要点:Material 正式分家,老项目先别急着更新
flutter·ai编程·客户端
夏天一说说9 小时前
API 安全】API-Pentest:基于 JS 分析 + AI Agent 的自动化 API 渗透测试工具实战指南
javascript·人工智能·安全·api