Apache Etch 是一个开源、跨平台、语言和传输方式独立的网络服务框架,可用来构建和使用网络服务。Etch 提供的工具集包括一个网络服务描述语言、一个编译器和与各种语言进行绑定的库。它具有传输方式独立的特性,允许开发者根据需求使用不同的传输方式。它的目标是使得开发者能够快捷的定义和访问轻量、集中的服务,并可以使用相似的方式进行组合和部署服务。使用 Etch 可以使得开发、访问服务相比使用其他开发工具库更加简单和快捷。
近日,Etch 团队宣布 Etch 1.4.0 发布,现已提供了 Linux 和 Windows 环境下的源码和二进制格式的下载,该版本新增了 C++ 语言的支持,并做了多方面的改进,还修复了大量 Bug,主要改进包括:
- 新增了 C++ 支持,在进行 beta 版本测试
- GO 语言版本升级到了 1.3
- 解决了 ValueFactory SRuntimes 互斥锁不能解锁的问题
- 修复了不能继承 equals 和 getHashCode 方法的问题
- 修复了 EtchPacketizer 的 sessionData 在一个 Buffer 中不能接收多个数据包的问题
- CAPU 版本升级到了 0.13.0 版本
- 修复在 hasResult() 或 hasException() 方法中客户端挂起的问题
- 修复了调用 EtchFlexBuffer 的 put 方法后 Buffer Index 不能更新的问题
- 能够在 EtchRuntime 中配置日志级别和日志附加的相关信息
- 能够在多个平台上编译 C++
- 构建系统能够进行充分利用多核进行构建
Etch 为了提供一个简洁、正式的描述客户端和服务端信息交换, 所以提供了以下强大的功能:
- 支持单向和双向的实时通信
- 具有高性能和高扩展性
- 支持客户和服务器端使用不同的语言编写
- 支持客户 / 服务器模式运行的环境(如瘦 Web 客户端、嵌入式设备、PC 应用、服务器应用)
- 支持添加新语言和新的传输方式
- 性能要快而轻量,还必须具有足够的灵活性以满足不同的需求
- 方便开发者访问和构建各种服务
Etch 是一个快速发展的项目,对 Java、C#、C 的支持已经稳定可用,C++ 的支持处于 beta 版本测试阶段,Go、JavaScript、Python 的支持还处于 Alpha 版本。接下来的版本中,将会支持 iOS 设备和 iOS 模拟器 。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论