#lightning #grpc #expose #bindings #grpc-api #cln #primitive

cln-grpc

作为grpc原语的核心闪电API。提供了用于在网络上公开API的绑定。

10个版本

0.1.9 2024年6月5日
0.1.8 2024年3月8日
0.1.7 2023年11月22日
0.1.3 2023年5月30日
0.1.0 2022年4月20日

#468 in 魔法豆

Download history 558/week @ 2024-04-16 622/week @ 2024-04-23 320/week @ 2024-04-30 467/week @ 2024-05-07 706/week @ 2024-05-14 370/week @ 2024-05-21 562/week @ 2024-05-28 685/week @ 2024-06-04 409/week @ 2024-06-11 426/week @ 2024-06-18 278/week @ 2024-06-25 391/week @ 2024-07-02 333/week @ 2024-07-09 294/week @ 2024-07-16 560/week @ 2024-07-23 448/week @ 2024-07-30

1,718每月下载量
用于 7 crates

MIT 许可证

560KB
13K SLoC

cln-grpc - 安全网络RPC接口

此插件提供了一个标准化的API,应用程序、插件和其他工具可以使用它与核心闪电进行交互。我们一直有一个JSON-RPC,它有一个非常详尽的API,但它只通过Unix域套接字本地公开。一些插件选择通过从REST到gRPC的各种协议重新公开API,但安装它们需要额外的努力。

因此,在v0.11.0版本中,我们发布了一个新的接口:cln-grpc,这是一个基于Rust的插件,以安全的方式在网络中公开现有的接口。gRPC API自动从我们现有的JSON-RPC API生成,因此它具有应用程序开发者习惯的低层和高层访问权限,但在可能的情况下使用更有效的二进制编码,并通过相互TLS认证进行安全保护。

要使用它,只需添加--grpc-port选项,它将与核心闪电一起自动启动并生成适当的mTLS证书。要使用gRPC接口,复制客户端密钥和证书,从protobuf定义生成您的客户端绑定,并连接到您之前指定的端口。

虽然所有之前的内置插件都是用C编写的,但cln-grpc插件是用Rust编写的,这是一种在项目中将更加突出的语言。为了启动Rust的使用,我们还构建了一些crates

  • cln-rpc:JSON-RPC接口的原生绑定,用于与CLN在同一系统上运行的事物。
  • cln-plugin:一个用于在Rust中创建插件(支持异步/await)的库,适用于低内存占用插件。
  • cln-grpc:当然,用于创建gRPC插件的库也可以直接作为客户端库使用。

所有这些crate都发布在crates.io上,并将作为项目的一部分继续维护。

依赖项

~19–30MB
~499K SLoC