三角洲服务器 npm 软件包
这是后继者 deltachat-node, (中文(简体) ),
它不使用NAPI绑定,而是使用stdio可执行文件
让你和核心谈谈jsonrpc和stdio.
这简化了交叉编译,甚至还减少了二进制大小(没有CFFI层,也没有NAPI层).
使用量
这个 最低 此软件包的节点版本是
16
npm i @deltachat/stdio-rpc-server @deltachat/jsonrpc-client
import { startDeltaChat } from "@deltachat/stdio-rpc-server";
import { C } from "@deltachat/jsonrpc-client";
async function main() {
const dc = startDeltaChat("deltachat-data");
console.log(await dc.rpc.getSystemInfo());
dc.close()
}
main()
比较完整的例子是指 https://github.com/deltachat-bot/echo/pul/69/files (中文(简体) ) (pr合并时TODO更改链接).
在不支持的平台上如何使用
安装时如何操作
国家防范机制在以下情况下自动安装依赖平台的可选依赖性: os 财务报告和审定财务报表 cpu 字段设置正确.
参考文献 :
- https://napi.rs/docs/deep-dive/release#3-the-native-addon- for-difficient-plapforms-is-diffied-通过-diffient-npm-packages 互联网档案馆的存檔,存档日期2013-12-12, (中文(简体) ), 网络存档版本
- https://docs.npmjs.com/cli/v6/configuring-npm/package-json#cpu (中文(简体) )
- https://docs.npmjs.com/cli/v6/configuring-npm/package-json#os (英语)
当导入此软件包时, 它会在以下位置和顺序搜索 rpc 服务器 :
DELTA_CHAT_RPC_SERVER环境变量- 当
{takeVersionFromPATH: true}选项中提供. - npm 包中的预建
因此默认它使用预建.
如何在CI中构建这个软件包
- 要建立平台软件包,请运行
build_platform_package.py脚本 :python3 build_platform_package.py <cargo-target> # example python3 build_platform_package.py x86_64-apple-darwin - 然后把它作为一件文物传递给出版主包的最后一个CI动作.
- 上传所有软件包
deltachat-rpc-server/npm-package/platform_package。 。 。 . - 然后发布
deltachat-rpc-server/npm-package, (中文(简体) ),- 这将运行
update_optional_dependencies_and_version.js(单位:千美元)prepack脚本, 将所有平台软件包输入optionalDependencies并更新version内package.json
- 这将运行
如何在主机上创建本地版本用于开发
您不能从本地安装上一节的 npm 数据包, 除非您在本地设置了 npm 注册簿, 您也可以上传它 。 这就是为什么我们有单独的脚本 使它工作的地方安装.
- 如果你只需要您的主机平台运行
python scripts/make_local_dev_version.py - 说明:这清除了
platform_package文件夹 - (高级) 如果您需要多个本地安装平台, 您可以运行
node scripts/update_optional_dependencies_and_version.js在建立多个平台之后build_platform_package.py
感谢Nlnet
这套软件的初始工作由nlnet供资,作为 德尔塔·陶里 项目.