Erlang logo

Erlang 库

封面

展开全部
收缩全部

目录

6 Erlang 库

6.1  OTP 库中有什么?

完整的库描述包含在开源分发版中,也 在线。 亮点是

O&M 支持

SASL、EVA、INETS 和 SNMP 提供与运营和维护相关的功能:版本处理、警报和事件处理、通过 Web 浏览器和 SNMP 进行管理。

CORBA

ORBER、CosEvent、CosTransactions 和 IC 包含对所有 CORBA 相关内容的支持。

数据库

Mnesia 和 Mnemosyne 提供了一个实时分布式数据库,它可以同时存在于 RAM 中和磁盘上。 还有一个标准的 ODBC 客户端驱动程序。

ASN.1

有一个 ASN.1 编译器,它可以生成 Erlang 代码。

标准库

丰富的模块集合提供了从字符串、列表和正则表达式操作到随机数生成和日历查找的所有内容。

结构组件

gen_server、gen_fsm 和监督树提供实现客户端/服务器子系统、状态机和受监督的容错系统的标准方法。

GUI 和图形

wx、gs 和 webtool 提供构建 GUI 的方法。

除此之外,还有 HTTP、SSH 和 FTP 服务器。

6.2  是否有数据结构的集合,例如平衡树?

链表是 Erlang 的基本组成部分,元组也是如此。 其他标准数据结构是

模块 描述
sets 集合,即一组唯一元素。
gb_sets 集合,但基于通用平衡数据结构
gb_tree 通用平衡树
dict 映射,也称为关联数组
queue 双端队列
ets 哈希表和有序集(树),存储在进程外部
dets 磁盘上的哈希表
表 6.1:  标准数据结构

(注意:使用频率较低的模块 ordsetorddict 仅仅是有序列表,因此对于常见的操作(如插入)具有 O(n)。)

6.3  是否有 Erlang 的串行端口驱动程序?

Johan Bevemyr 写了一个适用于 unix 机器。 该代码已经移动了几次,目前似乎在 github 上。

在邮件列表中已经讨论过编写一个更通用的驱动程序,该驱动程序也适用于 Windows 机器。 这方面并没有什么进展(缺乏兴趣?)。

6.4  是否有用于构建 GUI 的工具包?

有几个。

wx 应用程序允许您使用 wxWidgets(一个跨平台工具包)制作 GUI。 wx 是 OTP 分发版的一部分。

对于喜欢 gladeGTK 接口构建器)的用户,有一个 绑定 到 GTK,它与 glade 紧密耦合。

相关工作包括一个流行的 OpenGL 建模器

6.5  我已经编写了一个应用程序/库。如何打包它以便其他人可以使用它?

这取决于。

对于旨在与其他开源项目一起使用的开源项目,事实上的分发方式是使用 github。 然后,构建和安装依赖项应该理想情况下只需输入“make”。

最流行的做法是使用 rebar

另一种选择是 'erlang.mk',它反过来可以使用 relx

6.6  我已经编写了一个库来处理 XYZ。如何将其添加到标准 Erlang 分发版中?

这比大多数人想象的要困难得多。 Kent Boortz 在 邮件列表中 描述了许多障碍。

还有其他传播代码的方式,包括从自己的网站分发代码或在代码托管网站上启动项目。 github 在 Erlang 开发人员中非常受欢迎。