Reference implementations for the Pact Specification written in Rust
This project contains a reference implementation of the Pact specification written in Rust, often referred to as the Pact Core.
For Rust projects, you can use the Rust crates from this library in your project directly. Refer to the Rust project readme. Requires minimum Rust 1.71.0.
This project contains dynamic libraries that expose the core functionality through FFI (Foreign Function Interface).
For examples:
For implementations:
- Javascript via pact-js-core
- Ruby via pact-ruby-ffi
- PHP via pact-php
- GoLang via pact-go
- .NET via pact-net
- Swift via pact-swift
- Dart via pact-dart
- C++ via pact-cplusplus
- Python via pact-python
This project contains code to support exposing the core functionality through CLI (Command Line Interface).
They are distributed in binary & Docker formats.
To build the libraries in this project, you need a working Rust environment. Requires minimum Rust 1.59.0. Refer to the Rust Guide.
The build tool used is cargo
.
cd rust
cargo build
This will compile all the libraries and put the generated files in rust/target/debug
.
See CONTRIBUTING (PRs are always welcome!).
Rust library documentation is published to the Rust documentation site. Refer to the Rust project README.
Additional documentation can be found at the main Pact website.
or
- Twitter: @pact_up
- Stack Overflow: stackoverflow.com/questions/tagged/pact
The code in this project is licensed under a MIT license. See LICENSE.