Coder Social home page Coder Social logo

peardownloader.js's Introduction

一个支持多协议、多源和混合P2P-CDN的下载器

npm jsdelivr License


English

PearPlayer.js的发布吸引了业界的持续关注,同时,我们也收集到许多宝贵建议。 一方面我们将持续维护更新PearPlayer,使其支持更多的拓展功能; 另一方面我们将更底层、更基础且适用范围更广的相关组件重新整理,专注于节点的选择及数据的调度,将多源传输部分剥离出来,形成PearDownloader.js。

PearDownloader(梨享下载器)[Demo]PearPlayer的底层下载模块, 实现了融合HTTP(包含HTTPS、HTTP2)、WebRTC的多协议、多源、低延迟和高带宽利用率的无插件Web端下载加速能力。 基于高效的调度算法将来自多个节点的数据拼接形成完整的文件或将有序的数据/媒体流喂给上层应用,例如音视频播放器, PearDownloader由此能在保证下载速度的前提下最大化P2P率。

PearDownloader的发布,旨在降低已有成熟播放器的内容提供商(CP)的迁移成本:CP厂商可以按需将其集成到自有产品中,实现Web P2P能力;或者调度Pear Fog的海量节点资源,享受低成本、高质量的共享雾CDN服务。 PearDownloader支持更多样化的文件类型,以及更灵活的调度算法、调度策略的选择,满足更广阔、灵活、多变的业务场景与业务需求。

arch

通过<script>标签将pear-downloader.min.js导入到HTML即可使用。 参考以下代码示例,或查看/examples/downloader-test.htmlget-started了解使用方法。

特性

  • P2P能力基于国际标准的WebRTC,无须安装任何客户端或插件
  • 多协议(HTTP, HTTPS, WebRTC)、多源
  • 多源传输能力支持目前所有已知主流浏览器(当浏览器不支持WebRTC时全调度HTTP节点)
  • 通过浏览器内核的MSE,可支持音视频的边下边播
  • 自研的调度算法,在保证下载速度的前提下最大化P2P率(用户亦可实现自己的调度算法,以满足不同场景需求)
  • 默认无需填参数(内部根据文件属性作自适应),高级使用模式可自行调整算法和参数
  • 可选接入低成本、高可用的Pear Fog CDN
  • 协议默认通过TLS/DTLS全加密,无DPI特征;并可通过Pear Fog组件的动态端口映射进一步消除统计学特征
  • 具备Browser P2P能力(基于WebTorrent)

使用方法

首先通过script标签导入pear-downloader.min.js:

<script src="./dist/pear-downloader.min.js"></script>

或使用CDN:

<script src="https://cdn.jsdelivr.net/npm/peardownloader@latest"></script>

假设要下载https://example.com/file.zip

<script>
  var downloader = new PearDownloader('https://example.com/file.zip');
</script>

如何为自己的文件加速?

示例中的文件是已经分发过的,那么如何为任意文件加速呢?很简单,只需在文件分发系统中添加您的文件url, 即可利用Pear的海量节点为您的文件下载加速!具体教程请点击这里(文件的名字需要加上Pear-Demo-前缀, 如Pear-Demo-file.zip

谁在使用我们的产品?

PearDownloader文档

致谢

特别感谢以下项目,为本项目提供了部分灵感以及API设计参考:

演讲与媒体报道

License

MIT. Copyright (c) Pear Limited

帮助与支持

E-mail: [email protected];用户QQ群:373594967CP/CDN接入、OEM与其他商务合作

peardownloader.js's People

Watchers

James Cloos avatar DS avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.