- 路线图
- 规范 [状态: v3]
- 参考库 [状态: Alpha]
- Node/JS [状态: Beta]
- Golang [状态: Beta]
路线图
Pact是一个开源项目,需要依靠众多开发者的个人贡献。这也意味着以固定日期去交付特性几乎是不可能的。
不过话说回来,虽然每种语言都有各自的发展路线, 但是,作为一个社区我们在朝着同一方向一致努力。
规范 [状态: v3]
为保证不同语言间的互操作性,Pact规范规定了每个发布的主要版本的特性。当前最新被认可的版本是v3。
参考库 [状态: Alpha]
Pact的重要优势之一是具有各种语言的原生DSL,从而实现工具链之间的无缝集成。然而这也是其最大的挑战——规范一旦有任何变化,每种语言就得为其消费者端和提供者端的DSL实现复杂的匹配与验证逻辑。
Pact社区已经召集到一起来解决这个问题。我们的计划是用Rust创建一个原生的嵌入式库,具有良好定义的原生接口,每种语言可以吸收进来,从而完成公共的功能,例如:
- 运行模拟服务
- 执行匹配逻辑
- 验证契约
该项目正处于确认方法可行性的概念验证阶段,目前进展顺利,而且基本完成与v1版本的匹配。
Node/JS [状态: Beta]
Golang [状态: Beta]
Golang的状况与JavaScript社区相同,都在底层用到了Ruby的“二进制文件”。我们正在致力于一个新版本的发布,移除这个依赖,以便支持上面提到的参考库。然而现在功能上仅支持到v2版本的规范,API还需要修改。