# @banou/ripple 中文文档

规范地址：https://npmcn.com/package/%40banou/ripple/

版本：0\.0\.36
npm 元数据更新时间：2026-11-05T22:13:59.902Z
中文译文更新时间：2026-11-07T16:53:44.115Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40banou/ripple
原文对照：https://npmcn.com/package/%40banou/ripple/?lang=original
项目主页：https://github.com/banou26/ripple#readme
源码仓库：https://github.com/banou26/ripple

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：35.1 MB，67 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2023-12-14T01:46:34.519Z
- 最新版本发布：2026-11-05T22:13:59.580Z
- 近 30 天下载量：4351（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：36（近 12 个月 30 个）

## 中文简介

在浏览器中下载并流出种子

## 安装

```sh
npm install @banou/ripple
```

也可以使用：`pnpm add @banou/ripple`、`yarn add @banou/ripple`、`bun add @banou/ripple`

## README

# 连线

在浏览器中下载并流出种子 。 Riple 运行一个真正的 BitTorrent 引擎 (单位:千美元)[免费](https://www.libtorrent.org/),在页面中编译为WebAssembly),到达同级 通过 [新生力量](https://fkn.app/) 中继,并在下载时播放视频。 没有什么 安装和没有 Ripple 服务器 .

-   现场直播 [torrent.fkn.app (英语)](https://torrent.fkn.app/)在新军内部 [fkn.app/app/npm:@banou/ripple (英语)](https://fkn.app/app/npm:@banou/ripple)
-   Npm上公布为 [`@banou/ripple`](https://www.npmjs.com/package/@banou/ripple)

## 特征

-   **添加磁铁或磁铁 `.torrent`。 。 。 .** 把它粘上,扔下,或者一旦Riple打开你的系统 作为应用程序安装,然后打开 `magnet:` 链接和 `.torrent` 文档.
-   **下载时注意**,带有字幕,选择音频音轨和规范音量 开关.
-   **选择要的文件** 下载开始前.
-   **将文件保存在浏览器或磁盘上的文件夹中**,并保存一个文件,或一个拉链 几个.
-   **创建种子** 从文件或文件夹(v1, v2 或混合, 有源标签的私有, 网络) 中 直接从那些文件中播出来.
-   **每个设备上的你的图书馆.** 签名到 FKN, 您的列表及其缩略图同步, 加密 在浏览器里,在他们离开它之前.
-   **共享链接** 打开播放器或下载页面,其他网站可以嵌入.
-   **您所有的标签都有一个引擎.** 一个标签运行,另一个则使用.
-   **速度限制** 用于所有或每个种子,以及同伴、跟踪者、文件和全时共享 每个种子的比例 .
-   **没有开口帐户也没有分析.**

## 如何建造它

-   **用户**: 反应 19, 路由器 7, 和情感风格, in `src/router` 财务报告和审定财务报表 `src/components`。 。 。 .
-   **发动机**数字 : [`libtorrent-wasm`](https://www.npmjs.com/package/libtorrent-wasm) 在网络工作者中 (单位:千美元)`src/torrent/worker.ts`),从页面驱动 `src/torrent/client.ts`一个标签 在网络锁下,其他人通过广播频道到达它(`engine-election.ts`, (中文(简体) ), `engine-share.ts`) (中文(简体) ).
-   **网络**数字 : `@fkn/lib/net` 财务报告和审定财务报表 `@fkn/lib/dgram`,通过FKN中继器(`relayWorker` 将工人搭起桥梁。 进港同行到达接力储备港.
-   **存储**: OPFS, 或您授予的文件夹 (`src/torrent/hybrid-storage.ts`) (中文(简体) ). 列表,恢复数据 和缩略图在索引数据库中.
-   **玩家**数字 : [`@banou/media-player`](https://www.npmjs.com/package/@banou/media-player) 时间 `/watch` (单位:千美元)`src/router/embed.tsx`还有libav -wasm和jassub.
-   **同步**数字 : `src/torrent/use-cloud-backup.ts` 财务报告和审定财务报表 `src/torrent/thumbnail-sync.ts`下页 `ripple/` 在FKN账户的存储.

## 发展

使用节点 24 (`.node-version` 页:1.

```sh
npm ci
npm run dev            # http://localhost:4560
npm run build          # the site and the npm package, into build/
npm test               # unit tests (vitest, node)
npm run test:browser   # component tests in Chrome
npm run typecheck
npm run lint           # vp lint
```

Playwright套房首先建造,然后驱动Chrome的已建站点:

| 命令 | 包括什么 |
| --- | --- |
| `npm run test:e2e:local` | 应用程序,只需要浏览器(和ffmpeg) |
| `npm run test:e2e:machine` | 活体数字保持宽度,视机器字体而定 |
| `npm run test:e2e:swarm` | 引擎对抗真正的公共群 |
| `npm run test:e2e:rig` | 整条链子对着一群本地人,看 [试验/swarm-rig](https://npmcn.com/package/%40banou/ripple/tests/swarm-rig/README.md) |

蜂群和钻机套房需要一个头顶的Chrome, 因为没有头顶的Chromeum 拖住发动机在 0 B/s. 运行到下面 `xvfb-run -a -s "-screen 0 1280x720x24"` 所以没有打开窗口.

推动 `main` 部署 [torrent.fkn.app (英语)](https://torrent.fkn.app/) (云雾页. 当测试时 传递承诺和 `package.json` 名称 登记册还没有的版本,它也是 已发布至 npm (`.github/workflows/publish-lib.yml`) (中文(简体) ). 每个出版的版本都是FKN签名的 与 `fkn-sign`。 。 。 .

## 嵌入

`/watch` 财务报告和审定财务报表 `/download` 是另一个网站放入iframe的页面。 既取磁铁又取出 相同的查询; 路径选择一个生成 . `/watch` 播放一个文件, `/download` 发送文件.

| 段落 | 价值 | 含义 |
| --- | --- | --- |
| `magnet` | 磁铁URI基数64 | 要写的形式; 永久 |
| `m` | 装入的磁铁,基质64url | ripple 自己的共享链接所写的 |
| `fileIndex` | 文件索引 | 文件 `/watch` 播放( 缺席时最大视频); 倒计时 `/download` 用途 |
| `files` | `all`, (中文(简体) ), `3`, (中文(简体) ), `0-4`, (中文(简体) ), `0,2,5` | 什麽 `/download` 交付 |
| `language` | a BCP 47标签,例如 `fr` 或者说 `es-MX` | 页面语言和玩家控件语言, 领先于 Ripple 所选语言( 如果缺少, 无法读取, 或者他们没有文本 : 所选语言, 或者浏览器的第一种语言, 他们有文本) |
| `audio` | a BCP 47标签,或 `original` | 音频语言 `/watch` 开始,领先于其中的最后一个`original`: 文件属于自己) |
| `subtitles` | a BCP 47标签,或 `off` | 字幕语言开始,同样的方式 |
| `alwaysSubtitles` | `1` 或者说 `0` | `0` 当音频以他们的语言播放时, 开始字幕关闭 |

在播放器中选择的每一种音频或字幕语言都张贴在框架窗口上,作为 `{ ripple: 'picked', audio }`, (中文(简体) ), `{ ripple: 'picked', subtitles }` (倒数关闭)或 `{ ripple: 'picked', alwaysSubtitles: true }`,使页面在其中启动下个媒体.

一个 `magnet` 或者说 `m` 要求,以及 `m` 当两者都在场时,应首先阅读. `magnet=` 这是 原始形式和每条与之相通的链接都一直有效. `m=` 相同的种子被打包成一个 更短的链接.

```
/watch?magnet=<base64>&fileIndex=3     plays file 3
/download?magnet=<base64>              the whole torrent
/download?magnet=<base64>&files=3      just file 3
/download?magnet=<base64>&files=0-4    files 0 to 4 inclusive, as a zip
/download?magnet=<base64>&files=0,2,5  those three, as a zip
/download?magnet=<base64>&fileIndex=3  same as files=3
```

一个文件作为文件交付,一个以上作为一个文件交付 `.zip`。 。 。 . `files` 排行 `fileIndex`。提示种子没有被丢弃,并且决定 没有说,而不是下载整个种子.

**需要沙箱框架 `allow-downloads`**,或者浏览器在没有出错的情况下放下下载. 离开 `sandbox` 还行.

```html
<iframe src="https://torrent.fkn.app/download?magnet=..."
        sandbox="allow-scripts allow-same-origin allow-downloads"></iframe>
```

为何每一部分都以自己的方式运作 [文件/嵌入式数据d](https://npmcn.com/package/%40banou/ripple/docs/embedding.md)。 。 。 .

## 隐私

Riple不需要账户 也不需要分析 您的列表和文件留在您的浏览器中, 或是 您选择的文件夹 。 签名到FKN,你的列表及其缩略图同步到FKN账户, 先在浏览器中加密 。 同伴们看到FKN继电器的地址 而不是你的 这个 [隐私页面](https://torrent.fkn.app/privacy) 列出 Riple 保存的内容 (单位:千美元)`src/router/privacy.tsx`) (中文(简体) ).

## 许可证

麻省理工学院,看 [自由主义](https://npmcn.com/package/%40banou/ripple/LICENSE)。 。 。 .

## 常见问题

### @banou/ripple 是什么？

在浏览器中下载并流出种子

### 如何安装 @banou/ripple？

在项目目录运行 npm install @banou/ripple，或使用 pnpm add / yarn add / bun add。

### @banou/ripple 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/banou\_\_ripple 是否存在。

### @banou/ripple 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @banou/ripple 可以商用吗？

@banou/ripple 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @banou/ripple 的下载量有多少？

根据 npm 官方下载统计，@banou/ripple 在 2026/10/08 – 2026/11/06 这 30 天内被下载 4,351 次，日均约 145 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @banou/ripple 还在维护吗？

最新版本 0\.0\.36 发布于 2026/11/06（1 天前）；至今共发布 36 个版本，其中过去 12 个月发布了 30 个；首次发布于 2023/12/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

