发布用于创建网络应用程序的框架 ErgoFramework 2.2

ErgoFramework 2.2 的下一个版本发布了,用 Go 语言实现了完整的 Erlang 网络堆栈及其 OTP 库。 该框架为开发人员提供了来自 Erlang 世界的灵活工具,用于使用现成的通用设计模式 gen.Application、gen.Supervisor 和 gen.Server 以及专用模式 - gen.Stage 以 Go 语言创建分布式解决方案(分布式pub/sub)、gen.Saga(分布式事务,SAGA设计模式的实现)和gen.Raft(Raft协议的实现)。

此外,该框架还提供具有端到端加密的代理功能,这是 Erlang/OTP 和 Elixir 中不提供的。 由于 Go 语言没有 Erlang 进程的直接类似物,因此该框架使用 goroutine 作为 gen.Server 的基础,并带有“恢复”包装器来处理异常情况。 该项目代码是根据 MIT 许可证分发的。

ErgoFramework 中的网络堆栈完全实现了 Erlang 协议的 DIST 规范。 这意味着基于 ErgoFramework 编写的应用程序可以与任何使用 Erlang 或 Elixir 编程语言编写的应用程序本机协作(与 Erlang 节点交互的示例)。 另外值得注意的是,gen.Stage 设计模式是根据 Elixir GenStage 规范实现的,并且与其完全兼容(实现示例)。

在新版本中:

  • 添加了新模板
    • gen.Web 是一种 Web API 网关(也称为 Backend For Frontend)设计模式。 例子。
    • gen.TCP 是一个模板,允许您以最少的编写代码的工作量来实现 TCP 连接接受器池。 例子。
    • gen.UDP - 类似于 gen.TCP 模板,仅适用于 UDP 协议。 例子。
  • 通过在节点内实现简单的事件总线,提出了新的事件功能,它允许您创建在本地进程之间交换事件(发布/订阅)的机制。 例子。
  • 添加了对类型注册的支持,允许将消息自动序列化/反序列化为本机 Golang 数据类型。 这意味着您不再需要对收到的每条消息使用 etf.TermIntoStruct。 注册的类型将自动转换为指定的类型,这显着加快了分布式节点之间消息交换的性能。

来源: opennet.ru

添加评论