pact_verifier_ex

pact_verifier_ex is an Elixir library that provides Native Implemented Function (NIF) bindings to the pact_verifier Rust library. It leverages Rustler to expose the Rust functions while maintaining the same look and feel as the original library. This library enables provider verification for Pact contracts in Elixir projects, using the official Rust implementation under the hood.

Installation

Add to your mix.exs dependencies:

def deps do
  [
    {:pact_verifier_ex, "~> 0.1.0", only: [:test]}
  ]
end

Then run:

mix deps.get

Usage

For example usage of the library, refer to the test/pact_builder_test.exs file, which contains practical examples demonstrating how to verify a provider using Pact contracts and the exposed NIF functions.

Configuration

This library uses the same environment variables as the Rust pact_verifier library (Pact provider verification in Rust - Pact Docs):

Pact Plugins

To use a plugin, install it with the pact-plugin-cli. By default, plugins are installed under ~/.pact/plugins/. You can change this location by setting the PACT_PLUGIN_DIR environment variable.

See an example plugin usage in test/pact_builder_test.exs.

For more information about plugins, refer to the Pact plugin quick start guide.

Current Status

Currently, pact_verifier_ex supports:

Planned future enhancements include:

Contributing

Contributions are welcome! Please open issues or submit pull requests for any enhancements or bug fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.