eixx - Erlang C++ 接口库技术文档
2024-12-23 07:38:41作者:温玫谨Lighthearted
1. 安装指南
依赖项
- Boost库:eixx 依赖于 Boost 库,请确保系统中已安装 Boost。
- erl_interface:eixx 依赖于 Erlang 的 erl_interface 库,该库是 Erlang 发行版的一部分。
下载
可以通过 Git 克隆项目仓库:
$ git clone git@github.com:saleyn/eixx.git
构建
-
自定义构建配置: 如果需要自定义 Boost 的位置或安装前缀,可以创建一个名为
.cmake-args.${HOSTNAME}的文件。例如:$ cat > .cmake-args.${HOSTNAME} DIR:BUILD=/tmp/@PROJECT@/build DIR:INSTALL=/opt/pkt/@PROJECT@/@VERSION@ ENV:BOOST_ROOT=/opt/pkg/boost/current ENV:BOOST_LIBRARYDIR=/opt/pkg/boost/current/gcc/lib PKG_ROOT_DIR=/opt/pkg -
运行构建命令:
$ make bootstrap [toolchain=gcc|clang] [build=Debug|Release] \ [generator=make|ninja] [prefix=/usr/local] [verbose=true] $ make [verbose=true] $ make install # 默认安装路径为 /usr/local -
构建调试版本: 如果需要构建调试版本,可以按照以下步骤操作:
$ make bootstrap build=debug $ make src/libeixx_d.so $ make rebootstrap build=release $ make $ make install -
清理与重新构建: 如果需要清理当前构建并重新运行 bootstrap,可以使用以下命令:
$ make distclean $ make rebootstrap [toolchain=gcc|clang] [build=Debug|Release]
2. 项目使用说明
术语封送处理
eixx 库提供了方便的 Erlang 术语封送处理功能,支持以下特性:
- 编码/解码嵌套术语:通过单个函数调用实现(
eterm::encode()和eterm::eterm()构造函数)。 - 全局原子表:用于快速操作原子。
- 自定义内存分配器:允许用户提供自定义的内存分配器。
- 引用计数智能指针:用于复杂术语,简单术语(如整数、双精度、布尔值、原子)则按值复制。
分布式节点连接
连接库实现了比 erl_interface 更丰富的功能,完全支持进程链接和监控。该库是完全异步的,允许在一个操作系统线程中处理多个连接和邮箱。
示例代码
以下是一个简单的示例,展示了如何操作 Erlang 术语:
eterm i = 10;
eterm s = "abc";
eterm a = atom("ok");
eterm t = {20.0, i, s, a}; // 构造一个元组
eterm e = list{}; // 构造一个空列表
eterm l = list{i, 100.0, s, {a, 30}, list{}}; // 构造一个列表
3. 项目 API 使用文档
术语操作 API
- eterm::encode():用于编码 Erlang 术语。
- eterm::eterm():用于解码 Erlang 术语。
- eterm::format():实现表达式解析器,用于格式化术语。
分布式连接 API
- otp_mailbox:用于处理邮箱中的消息。
- otp_connection:用于连接到 Erlang 节点。
- otp_node:用于管理节点连接和邮箱。
4. 项目安装方式
安装步骤
-
克隆仓库:
$ git clone git@github.com:saleyn/eixx.git -
构建与安装:
$ make bootstrap $ make $ make install -
安装调试版本: 如果需要安装调试版本,请按照以下步骤操作:
$ make bootstrap build=debug $ make src/libeixx_d.so $ make rebootstrap build=release $ make $ make install
通过以上步骤,您可以成功安装并使用 eixx 库,进行 Erlang 术语的封送处理和分布式节点连接。
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0150- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
731
4.74 K
Ascend Extension for PyTorch
Python
610
794
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1 K
1.01 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
433
392
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
145
237
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.16 K
150
暂无简介
Dart
983
252
Oohos_react_native
React Native鸿蒙化仓库
C++
348
401
昇腾LLM分布式训练框架
Python
166
198
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.67 K
987