grenache-grape

中文文档
2.0.0发布于 2026/11/04Apache-2.0CommonJS

歌海娜葡萄- DHT微服务

中文使用文档
文档目录9 节
  1. 安装
  2. 以二进制模式运行
  3. 集成到您的代码中
  4. API
  5. 类:葡萄
  6. 实现
  7. node . js的客户
  8. Ruby客户
  9. CLI的客户

歌海娜 葡萄的实现

Grenache是一个连接微服务的微框架。它的简单和优化的性能。

在内部,Grenache使用分布式哈希表(DHT, Bittorrent)进行点对点连接。你可以在网站上找到更多关于Grenche内部运作的细节 项目主页。

葡萄是歌海娜的主要原料。他们管理DHT,我们虚拟网络的基础。

安装

// Install global (run binary)
npm install -g grenache-grape
// Install locally to project (programmatic approach)
npm install --save grenache-grape

以二进制模式运行

grape --help

Usage: grape --dp <dht-port> --aph <http-api-port> --bn <nodes> [--b
bind-to-address]

Options:
  -b, --bind                 Listening host                             [string]
  --dp, --dht_port           DHT listening port              [number] [required]
  --dc, --dht_concurrency    DHT concurrency                            [number]
  --dht_maxTables            DHT max tables                             [number]
  --dht_maxValues            DHT max values                             [number]
  --bn, --bootstrap          Bootstrap nodes                 [string] [required]
  --aph, --api_port          HTTP api port                   [number] [required]
  --dht_peer_maxAge, --dpa   Max age for peers in DHT                   [number]
  --cache_maxAge             Maximum cache age                          [number]
  --dnl, --dht_nodeLiveness  Interval in ms to check for dead nodes     [number]
  --check_maxPayloadSize     Limit for max payload size                 [number]
  --help                     Show help                                 [boolean]
  --version                  Show version number                       [boolean]
// Run 3 Grapes
grape -b 127.0.0.1 --dp 20001 --dc 32 --aph 30001 --bn '127.0.0.1:20002,127.0.0.1:20003'
grape --dp 20002 --aph 40001 --dc 32 --bn '127.0.0.1:20001,127.0.0.1:20003'
grape --dp 20003 --aph 50001 --dc 32 --bn '127.0.0.1:20001,127.0.0.1:20002'

集成到您的代码中

const Grape = require('grenache-grape').Grape

const g = new Grape({
  // host: '127.0.0.1', // if undefined the Grape binds all interfaces
  dht_port: 20001,
  dht_bootstrap: [
    '127.0.0.1:20002'
  ],
  api_port: 30001
})

g.start()

API

类:葡萄

新的葡萄(选项)

  • options <Object>链接的选项
    • host <String>要绑定的IP。如果为空,则Grape绑定到所有接口
    • dht_maxTables <Number> DHT表的最大数目
    • dht_maxValues <Number> DHT值的最大数目
    • dht_port <Number> DHT的端口号
    • dht_concurrency <Number> DHT的并发性
    • dht_bootstrap: <Array>启动服务器
    • dht_peer_maxAge <Number> DHT对等体的maxAge
    • api_port <Number>歌海娜API HTTP端口

事件:“准备好了”

DHT完全启动时触发。

事件:“听”

DHT正在监听时发出。

事件:“对等”

当找到潜在对等体时触发。

事件:“节点”

DHT发现新节点时触发。

事件:“警告”

当对等体宣布自己时发出,以便存储在DHT中。

事件:“宣布”

当对等体宣布自己时发出,以便存储在DHT中。

实现

node . js的客户

  • https://github.com/bitfinexcom/grenache-nodejs-ws:基于WebSocket的Grape微服务
  • https://github.com/bitfinexcom/grenache-nodejs-http:基于HTTP的Grape微服务
  • https://github.com/bitfinexcom/grenache-nodejs-zmq:基于ZeroMQ的Grape微服务

Ruby客户

  • https://github.com/bitfinexcom/grenache-ruby-ws:基于WebSocket的Grape微服务
  • https://github.com/bitfinexcom/grenache-ruby-http:基于HTTP的Grape微服务

CLI的客户

  • https://github.com/bitfinexcom/grenache-cli: Grape微服务的命令行接口

版本与发布记录

grenache-grape 共发布 48 个版本,首次发布于 2016/04/03;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.0.0latest2026/11/04今天
1.0.02025/05/231.4 年前
0.9.122023/03/183 年前
0.9.112021/11/184 年前
0.9.102018/10/138 年前
0.9.92018/09/308 年前

关于 grenache-grape 的常见问题

grenache-grape 是什么?

歌海娜葡萄- DHT微服务

如何安装 grenache-grape?

在项目目录运行 npm install grenache-grape,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 grape,可以用 npx grape 直接运行。

grenache-grape 支持 TypeScript 吗?

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

grenache-grape 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

grenache-grape 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

grenache-grape 可以商用吗?

grenache-grape 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

grenache-grape 还在维护吗?

最新版本 2.0.0 发布于 2026/11/04(今天);至今共发布 48 个版本,其中过去 12 个月发布了 1 个;首次发布于 2016/04/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。