# Pact Docs > Fast and reliable testing for your APIs and microservices during development. Safety during deployment. - [Introduction](/index.md) ## help-wip - [Need help?](/help-wip.md) ## index-wip - [Pact Docs](/index-wip.md) ## search - [Search the documentation](/search.md) ## users - [Who is Using This?](/users.md) - [Case Studies](/users/case_studies.md): We have some great case studies covering the use of Pact, just click on a logo to take you a post! - [Case Study - Atlassian](/users/case_studies/case_study_atlassian.md): Atlassian: Jira - [Case Study - Boost Insurance](/users/case_studies/case_study_boostinsurance.md): Published 16 Feb, 2021 - [Case Study - Gov.UK Pay](/users/case_studies/case_study_govuk.md): Gov.UK Pay - [Case Study - M1 Finance](/users/case_studies/case_study_m1finance.md): Published 29 Sep, 2021 - [Community Corner - Adam Cox](/users/community_corner/adam_cox_interview_may2023.md): We talk to Adam Cox about his journey at Sky, from introducing Pact to the team, to adventures with embedded devices, websockets, and how the Pact Plugin framework is helping them push the envelope. - [Testimonials](/users/testimonials.md): Developers love Pact - [Trusted by](/users/trustedby.md): Pact is proud to be in use and protecting deployments for the following companies and more ## tags - [Tags](/tags.md) - [One doc tagged with "diagrams"](/tags/diagrams.md) - [2 docs tagged with "webinar"](/tags/webinar.md) ## 5-minute-getting-started-guide - [5 minute guide](/5-minute-getting-started-guide.md): From zero to running Pact tests in 5 mins ## ai_tools - [PactFlow AI Assistant Skill](/ai_tools/pactflow-skill.md): The PactFlow skill turns your AI coding assistant into a PactFlow and Pact contract testing expert. It provides deep knowledge of consumer test patterns, provider verification configuration, can-i-deploy diagnostics, and full workspace management — surfaced directly in your editor without leaving your flow. - [SmartBear MCP Server](/ai_tools/smartbear-mcp.md): The @smartbear/mcp package is a Model Context Protocol server that exposes your PactFlow or Pact Broker workspace as a set of contract-testing_* tools. When configured alongside the PactFlow skill, your AI assistant gains structured, programmatic access to your workspace — direct matrix queries, AI-assisted test generation and review using your live provider states, BDCT cross-contract verification results, and full management of every broker resource. ## blogs_videos_and_articles - [Community videos and articles](/blogs_videos_and_articles.md): Check out the official Pact blog at docs.pact.io/blog and the PactFlow blog for blogs written by Pact maintainers. ## books - [Books](/books.md): We're not aware of any books currently dedicated to contract testing, but here are some that talk about Pact and contract testing as part of a broader microservices development and testing strategy: ## community_repos - [Community Projects](/community_repos.md): There are loads of awesome Pact projects in the wild, if you have seen one, please add it to the list. You can scroll down to the bottom of the page, and click Edit this page. ## consumer - [Writing Consumer tests](/consumer.md): When thinking about authoring consumer pact tests: start with the goal of writing a good set of unit tests for your API client. An important side-effect of doing this with Pact is that you also produce an API contract you can use for contract testing. - [Contract Tests vs Functional Tests](/consumer/contract_tests_not_functional_tests.md): Contract tests focus on the messages that flow between a consumer and provider, while functional tests also ensure that the correct side effects have occurred. For example, imagine an endpoint for a collection of /orders that accepts a POST request to create a new order. A contract test would ensure that the consumer and provider had a shared and accurate understanding of the request and response required to create an order, while a functional test for the provider would ensure that when a given request was made, that an Order with the correct attributes was actually persisted to the underlying datastore. A contract test does not check for side effects. - [Recommended configuration for publishing pacts](/consumer/recommended_configuration.md): Using Pact + the Pact Broker in your release pipeline works most naturally if you are using a branch based feature development workflow. - [Using Pact to support UI testing](/consumer/using_pact_to_support_ui_testing.md): While we don't recommend you generate pacts from your UI tests, you can use Pact to support your UI testing using one of a few approaches. ## contributing - [Contributing](/contributing.md): Getting involved in Open Source - [CI/CD Systems](/contributing/ci.md): Testing - [Contributing to the code](/contributing/code.md): We encourage contribution to any of our libraries, if you see something that should be fixed, simply do the following: - [Contributor Covenant Code of Conduct](/contributing/code-of-conduct.md): Our Pledge - [Contributors](/contributing/contributors.md): Organizations - [Contributing to the docs](/contributing/docs.md): Contributing is welcome and easy! ## diagrams - [Pact Ecosystem](/diagrams/ecosystem.md): Background ## docker - [Docker](/docker.md): Often times, you'll want to use Docker to run Pact. For example, a common approach is to run all CI builds within a docker container. This guide offers some assistance in those wanting to pursue this path. ## events - [Events](/events.md): Upcoming official events - [Customise contract testing for you with the new Pact Plugin Framework](/events/plugins-framework-launch.md): Webinar - [Create a Pact Plugin in an hour](/events/plugins-framework-workshop.md): Workshop ## faq - [FAQ](/faq.md): You can find the answers to some more technical and complex questions here. - [Convince me](/faq/convinceme.md): How to convince your team, your boss or yourself that Contract Testing is a good idea - [Question archive](/faq/question_archive.md): Some less commonly, but no less importantly, asked questions. ## getting_started - [Comparisons with other tools](/getting_started/comparisons.md): How does Pact differ from Spring Cloud Contract? - [Conceptual Overview](/getting_started/conceptual_overview.md): Using Pact successfully requires you to understand how Pact works and the concepts and terminology behind Pact. - [Further reading](/getting_started/further_reading.md): Talks and Presentations - [How Pact works](/getting_started/how_pact_works.md): Remember these definitions from the introduction: - [Matching](/getting_started/matching.md): This section describes the various request/response matching techniques available in your Consumer tests. Note the examples below demonstrate use of the Ruby DSL, please refer to your particular language and framework as implementations differ. - [Gotchas](/getting_started/matching/gotchas.md): Pact follows Postel's law - [Provider states](/getting_started/provider_states.md): A good way to think about Provider States is that they are the necessary preconditions for a particular test scenario to run. You can think of them as the analog of Given from Cucumber. - [Provider verification](/getting_started/provider_verification.md): What is it? - [Sharing Pacts with the Pact Broker](/getting_started/sharing_pacts.md): The consumer CI generates pact files during the execution of its isolated tests. The provider CI generates verification results during the execution of its isolated tests. These artifacts need to be shared between the projects. - [Pact Specification](/getting_started/specification.md): Introduction - [Local API stubs](/getting_started/stubs.md): Pact contracts are easily turned into locally running API stubs. Pact contracts lack advanced features such as predicates that you might find in tools like mountebank, however they are useful for many situations - such as e2e tests with tools like Protractor and Karma. - [Terminology](/getting_started/terminology.md): Service Consumer - [Testing scope](/getting_started/testing-scope.md): Watch a video - [Verifying Pacts](/getting_started/verifying_pacts.md): "Verifying a pact" is the second step of the Pact testing process. Each request in the pact file is replayed against the provider, and the response is compared with the expected response in the pact file. If the two match, then we know the consumer and provider are compatible. - [Versioning in the Pact Broker](/getting_started/versioning_in_the_pact_broker.md): When using Pact, you have to be careful about how your application version numbers are set. This document describes the versioning concepts used by the Pact Broker, and recommends best practices. - [When to use Pact](/getting_started/what_is_pact_good_for.md): When all you have is a hammer everything looks like a nail... ## help - [Where to go for help](/help.md): This project is maintained by a dedicated group of people. They are always willing to help, but most of the time you'll find the answer to your question in our existing documentation, so please look there first. - [Ask Me Anything](/help/amas.md): Previous Ask Me Anything recordings - [Enabling debug logging](/help/enabling-debug-logging.md): Enabling debug/verbose logging can help identify the cause of issues. For many Pact libraries, this will allow you to see the HTTP requests and responses when the library interacts with a Pact Broker or PactFlow. For older Pact libraries that wrap a shared Ruby Pact implementation, verbose logging can be enabled by setting the environment variable VERBOSE=true. New Pact libraries that use the shared Rust Pact implementation will have their own language specific ways of enabling verbose logging. - [How to ask for help on Slack](/help/how_to_ask_for_help.md): The Pact maintainers and our band of experienced community members love helping you learn how to use Pact! ❤️ - [SmartBear Supported](/help/smartbear.md): SmartBear is the commercial entity behind the PactFlow product, which is an enterprise edition of the Pact Broker. ## history - [History](/history.md): Pact was originally written by a development team \(including Ron Holshausen from DiUS\) at realestate.com.au in 2013. They were trying to solve the problem of how to do integration testing for their new Ruby microservices architecture, and they threw together a codebase that was to become the first Pact implementation. As the team was writing Ruby microservices, the serialisation of the "matching logic" \(e.g. regular expressions\) was done using Ruby specific code. The team was under the pump to finish their actual customer deliverable, so they got their Pact MVP working, and left it at that. ## implementation_guides - [Pact command line tools](/implementation_guides/cli.md): There are Pact implementations written in more than 10 languages (see the sidebar of this page for a full list). - [Pact Broker Client](/implementation_guides/cli/pact-broker-cli.md): Source Code - [pact-broker-cli](/implementation_guides/cli/pact-broker-cli/changelog.md): Source Code - [Pact](/implementation_guides/cli/pact-cli.md): Source Code - [pact-cli](/implementation_guides/cli/pact-cli/changelog.md): Source Code - [Pact Mock Server](/implementation_guides/cli/pact-mock-server.md): Source Code - [pact_mock_server_cli](/implementation_guides/cli/pact-mock-server/changelog.md): Source Code - [Pact Plugin](/implementation_guides/cli/pact-plugin.md): Source Code - [pact-plugin-cli](/implementation_guides/cli/pact-plugin/changelog.md): Source Code - [Pact Stub Server](/implementation_guides/cli/pact-stub-server.md): Source Code - [pact-stub-server](/implementation_guides/cli/pact-stub-server/changelog.md): Source Code - [Pact Verifier](/implementation_guides/cli/pact-verifier.md): Source Code - [pact_verifier_cli](/implementation_guides/cli/pact-verifier/changelog.md): Source Code - [README](/implementation_guides/cpp.md): Pact-C++ Build - [C++ Consumer DSL](/implementation_guides/cpp/consumer.md): This is a shared library (pact-cpp-consumer) that you can link into your test binaries and it provides a DSL for setting up and running a consumer test. It wraps the Pact-Rust pactffi library, which will need to be linked as well. - [Consumer DSL Changelog](/implementation_guides/cpp/consumer/changelog.md): 0.1.0 - Update to new pact_ffi lib and JFrog conan repositry - [Working with feature toggles and configurable behavior](/implementation_guides/feature_toggles.md): Normally we think that a particular version of our code is attached to only a single version of a pact. - [Overview](/implementation_guides/go.md): Pact Go currently supports all versions of the Pact specification including support for HTTP, synchronous messages, plugins and more. Checkout the README to get started. - [Changelog](/implementation_guides/go/changelog.md): Versions - [Consumer Tests](/implementation_guides/go/docs/consumer.md): Contract Testing Process (HTTP) - [Examples](/implementation_guides/go/docs/examples.md): HTTP APIs - [Event driven-systems](/implementation_guides/go/docs/messages.md): Introduction to asynchronous API Testing - [Plugins](/implementation_guides/go/docs/plugins.md): HTTP - [Provider Verification](/implementation_guides/go/docs/provider.md): Pact Go supports both HTTP and non-HTTP verification (using plugins). - [Troubleshooting](/implementation_guides/go/docs/troubleshooting.md): Output Logging - [Migration Guide](/implementation_guides/go/migration.md): Major changes from v1.x.x to v2.x.x - [README](/implementation_guides/go/readme.md): logo - [Troubleshooting](/implementation_guides/go/troubleshooting.md): Here we can find common issues and how to solve them. - [Changelog](/implementation_guides/javascript/changelog.md): All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines. - [Contributing](/implementation_guides/javascript/contributing.md): We love contributors! Pact-js is maintained and contributed to by developers just like you. - [Consumer Tests](/implementation_guides/javascript/docs/consumer.md): Contract Testing Process (HTTP) - [GraphQL API](/implementation_guides/javascript/docs/graphql.md): GraphQL is simply an abstraction over HTTP and may be tested via Pact. - [Matching](/implementation_guides/javascript/docs/matching.md): Matching makes your tests more expressive and your tests less brittle. - [Event Driven Systems](/implementation_guides/javascript/docs/messages.md): Introduction to Message Based API Testing - [Migrating from 15.x.x to 16.x.x](/implementation_guides/javascript/docs/migrations/16.md): New features - [Migrating from 9.x.x to 10.x.x](/implementation_guides/javascript/docs/migrations/9-10.md): Major changes - [Plugins](/implementation_guides/javascript/docs/plugins.md): Plugins are the fundamental extension mechanism in Pact. Using the Plugin Framework, you can combine different plugins with the various in-built interaction types to model most interactions in your architecture. - [Provider Verification](/implementation_guides/javascript/docs/provider.md): Pact JS supports both HTTP and non-HTTP verification (using plugins). - [Troubleshooting](/implementation_guides/javascript/docs/troubleshooting.md): If you are having issues, a good place to start is setting logLevel: 'debug' when configuring the new Pact({...}) object. This will give you detailed in/out requests as far as Pact sees them during verification. - [XML](/implementation_guides/javascript/docs/xml.md): You can write both consumer and provider verification tests with XML requests or responses. - [Overview](/implementation_guides/javascript/readme.md): logo - [Overview](/implementation_guides/jvm.md): Pact JVM is currently compliant to Pact Specification Version 4.0. - [Changelog](/implementation_guides/jvm/changelog.md): 4.6.20 - Small Feature Release - [Compatability Suite](/implementation_guides/jvm/compatibility-suite.md): This is the implementation of the Pact Compatability Suite implemented with Cucumber JVM. - [pact-compatibility-suite](/implementation_guides/jvm/compatibility-suite/pact-compatibility-suite.md): Set of BDD style tests to check compatibility between Pact implementations. - [Pact consumer](/implementation_guides/jvm/consumer.md): Pact Consumer is used by projects that are consumers of an API. - [Pact JVM Mock](/implementation_guides/jvm/consumer/consumer/pact-jvm-mock.md): Build status - [pact-jvm-consumer-groovy](/implementation_guides/jvm/consumer/groovy.md): Groovy DSL for Pact JVM - [pact-jvm-consumer-junit](/implementation_guides/jvm/consumer/junit.md): Provides a DSL and a base test class for use with Junit to build consumer tests. - [pact-jvm-consumer-junit5](/implementation_guides/jvm/consumer/junit5.md): JUnit 5 support for Pact consumer tests - [Kotlin consumer DSL for Pact-JVM](/implementation_guides/jvm/consumer/kotlin.md) - [pact-jvm-consumer-specs2](/implementation_guides/jvm/consumer/specs2.md): Specs2 Bindings for the pact-jvm library - [Contributing](/implementation_guides/jvm/contributing.md): 1. Fork it - [Releasing Pact-JVM](/implementation_guides/jvm/docs/releaseprocess.md): The Pact-JVM project releases three types of artifacts: Java JAR files to Maven Central, a Gradle plugin to plugins.gradle.org - [System Properties](/implementation_guides/jvm/docs/system-properties.md): Theses are all the system properties used by Pact-JVM - [Matching requests and responses with Pact-JVM](/implementation_guides/jvm/matching.md): To understand the basic rules of matching, see Matching Gotchas. - [Pact server](/implementation_guides/jvm/pact-jvm-server.md): The pact server is a stand-alone interactions recorder and verifier, aimed at clients that are non-JVM or non-Ruby based. - [Pact provider](/implementation_guides/jvm/provider.md): The pact provider is responsible for verifying that an API provider adheres to a number of pacts authored by its clients - [Gradle plugin to verify a provider](/implementation_guides/jvm/provider/gradle.md): Gradle plugin for verifying pacts against a provider. - [Pact junit runner](/implementation_guides/jvm/provider/junit.md): Dependency - [Pact Junit 5 Extension](/implementation_guides/jvm/provider/junit5.md): Dependency - [Pact Spring/JUnit5 Support](/implementation_guides/jvm/provider/junit5spring.md): This module extends the base Pact JUnit5 module. See that for more details. - [Leiningen plugin to verify a provider](/implementation_guides/jvm/provider/lein.md): Leiningen plugin for verifying pacts against a provider. The plugin provides a pact-verify task which will verify all - [Verifying a Provider](/implementation_guides/jvm/provider/maven.md): This is a Maven plugin for verifying pacts against a running provider, publishing pacts generated by consumer tests, - [Pact sbt plugin](/implementation_guides/jvm/provider/sbt.md): The sbt plugin adds an sbt task for running all provider pacts against a running server. - [pact-jvm-provider-scalatest](/implementation_guides/jvm/provider/scalatest.md): Provides an extension to scalatest to validate pact files against a running provider. See - [pact-jvm-provider-specs2](/implementation_guides/jvm/provider/specs2.md): Provides an extension to Specs2 Specification to validate a pact file against a running provider. See - [Pact Spring/JUnit runner](/implementation_guides/jvm/provider/spring.md): Overview - [Pact Spring6/Springboot3 + JUnit5 Support](/implementation_guides/jvm/provider/spring6.md): This module extends the base Pact JUnit5 module (See that for more details) and adds support - [README](/implementation_guides/jvm/readme.md): Pact-JVM Build - [Upgrading to 4.3.x](/implementation_guides/jvm/upgrade-to-4.3.x.md): Pact specification version defaults to V4 - [Overview](/implementation_guides/net.md): PactNet is currently compliant up to and including Pact Specification Version 4.0, excluding pact plugins. - [Messaging Pacts](/implementation_guides/net/docs/messaging-pacts.md): Messaging pacts work similarly to synchronous request/response pacts in that there is still a consumer - [Upgrading to PactNet 4.x](/implementation_guides/net/docs/upgrading-to-4.md): PactNet 4.0.0 is a major rewrite of PactNet to be based on the new [Rust core library] - [Upgrading to PactNet 5.x](/implementation_guides/net/docs/upgrading-to-5.md): PactNet 5.x contains some breaking changes to improve the ergonomics of working with the new capabilities of Pact - [README](/implementation_guides/net/readme.md): logo - [Other Languages](/implementation_guides/other_languages.md): This section describes strategies you can use to test a consumer or provider where a Pact client language doesn't exist. - [Pact tooling](/implementation_guides/overview.md): There are Pact implementations written in more than 10 languages (see the sidebar of this page for a full list). The Pact tests for the consumer side of an integration are usually written in the same language as the consumer itself, as they typically run as part of the consumer's unit test suite. On the provider side, the verification tests can be run using either the Pact verifications API for that language, or by running the Pact provider verifier CLI (see below). Under the hood, many of the languages use a native c interface integration (pact ffi), and wrap native language syntax sugar around some of the features. - [Overview](/implementation_guides/pact_plugins.md): Source Code - [Content Matchers and Generators](/implementation_guides/pact_plugins/docs/content-matcher-design.md): Plugins can provide matchers and generators for different types of content. These contents are the bodies of - [Primitive values](/implementation_guides/pact_plugins/docs/matching-rule-definition-expressions.md): Matching Rule Definition Expressions - [Plugin drivers](/implementation_guides/pact_plugins/docs/plugin-driver-design.md): Plugin drivers provide the functionality to find, load and interface to the plugins for the Pact test framework. Each language - [Overview](/implementation_guides/pact_plugins/docs/proposals.md): Here is the current list of proposed changes to the Pact Plugin architecture. - [V2 Plugin Interface (Draft)](/implementation_guides/pact_plugins/docs/proposals/proposal_001_v2_plugin_interface.md): Discussion for this proposal//github.com/pact-foundation/pact-plugins/discussions/83 - [Support script language plugins (Draft)](/implementation_guides/pact_plugins/docs/proposals/proposal_002_support_script_language_plugins.md): Source Code - [Support WASM plugins (Draft)](/implementation_guides/pact_plugins/docs/proposals/proposal_003_support_wasm_plugins.md): Source Code - [Protocol Plugin Implementations](/implementation_guides/pact_plugins/docs/protocol-plugin-design.md): One of the features a plugin can provide is a protocol transport implementation. For these, the plugin needs to provide - [Guide to writing a Pact plugin](/implementation_guides/pact_plugins/docs/writing-plugin-guide.md): Pact plugins are essentially gRPC servers that run as child processes to the main Pact process (whether in a consumer - [Pact plugin driver library for the JVM](/implementation_guides/pact_plugins/drivers/jvm.md): Source Code - [Changelog](/implementation_guides/pact_plugins/drivers/jvm/changelog.md): Source Code - [Pact plugin driver library for Rust](/implementation_guides/pact_plugins/drivers/rust/driver.md): Source Code - [Test project for using plugins via FFI](/implementation_guides/pact_plugins/drivers/rust/driver_ffi.md): Source Code - [Changelog](/implementation_guides/pact_plugins/drivers/rust/driver/changelog.md): Source Code - [CSV Examples](/implementation_guides/pact_plugins/examples/csv.md): Source Code - [gRPC examples](/implementation_guides/pact_plugins/examples/grpc.md): Source Code - [Area Calculator Example](/implementation_guides/pact_plugins/examples/grpc/area_calculator.md): Source Code - [Example Go consumer project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/consumer-go.md): Source Code - [Example Java and JUnit 5 with Gradle consumer project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/consumer-jvm.md): Source Code - [Example Java and JUnit 5 with Maven consumer project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/consumer-maven.md): Source Code - [Example Rust consumer project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/consumer-rust.md): Source Code - [Example Go provider project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/provider-go.md): Source Code - [Example JVM provider project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/provider-jvm.md): Source Code - [Example Maven provider project](/implementation_guides/pact_plugins/examples/grpc/area_calculator/provider-maven.md): Source Code - [Examples dealing with gRPC error responses](/implementation_guides/pact_plugins/examples/grpc/grpc_status.md): Source Code - [Example Java and JUnit 5 consumer project](/implementation_guides/pact_plugins/examples/grpc/test_enums/consumer-jvm.md): Source Code - [Protobuf Examples](/implementation_guides/pact_plugins/examples/protobuf.md): Source Code - [Protobuf JVM Consumer Example](/implementation_guides/pact_plugins/examples/protobuf/protobuf-consumer-jvm.md): Source Code - [Protobuf Rust Consumer Example](/implementation_guides/pact_plugins/examples/protobuf/protobuf-consumer-rust.md): Source Code - [Simple Example Protobuf provider](/implementation_guides/pact_plugins/examples/protobuf/protobuf-provider.md): Source Code - [Example/Prototype plugins](/implementation_guides/pact_plugins/plugins.md): Source Code - [CSV Plugin prototype](/implementation_guides/pact_plugins/plugins/csv.md): Source Code - [Protobuf Plugin prototype](/implementation_guides/pact_plugins/plugins/protobuf.md): Source Code - [Pact Specification](/implementation_guides/pact_specification.md): Introduction - [Pact-PHP](/implementation_guides/php/developing.md): Pre Reqs - [Additional Examples](/implementation_guides/php/docs/additional-examples.md): If you have additional examples, please feel free to raise a pull request to add a link to your project/example - [Pact PHP — Alpine (musl) FFI Troubleshooting](/implementation_guides/php/docs/alpine-ffi-troubleshooting.md): This page explains how to fix a common issue when running Pact PHP v10 on Alpine Linux (musl). - [Basic Consumer Usage](/implementation_guides/php/docs/consumer.md): All of the following code will be used exclusively for the Consumer. - [Framework Integrations](/implementation_guides/php/docs/framework-integrations.md): There are several external packages to help verifying providers implemented these framework easier: - [Message support](/implementation_guides/php/docs/messages.md): The goal is not to test the transmission of an object over a bus but instead vet the contents of the message. - [Basic Provider Usage](/implementation_guides/php/docs/provider.md): All of the following code will be used exclusively for Providers. This will run the Pacts against the real Provider and either verify or fail validation on the Pact Broker. - [Releasing](/implementation_guides/php/docs/releasing.md): Pact-PHP packages are published to Packagist - [History](/implementation_guides/php/docs/software-history.md): 10.X updates internal dependencies and libraries + adds support for pact specification 3.X & 4.X via Pact FFI. - [Usage for the optional `pact-stub-service`](/implementation_guides/php/docs/stub-server.md): If you would like to test with fixtures, you can use the pact-stub-service like this: - [Troubleshooting](/implementation_guides/php/docs/troubleshooting.md): Can not find/load FFI library - [Readme](/implementation_guides/php/readme.md): logo - [Upgrading to 10.x](/implementation_guides/php/upgrade-10.0.md): We have migrated from the pact-ruby core, to the pact-reference(rust) core. - [Overview](/implementation_guides/python.md): Pact Python is currently in active development and supports Pact Specification v2, pending pacts, and WIP pacts via the pact-ruby-standalone CLI, and has recently introduced a beta v3 interface, with a native c integration to the pact-core and supports Pact V3/V4 specification. - [Changelog](/implementation_guides/python/changelog.md): All notable changes to this project will be documented in this file. - [Consumer Testing](/implementation_guides/python/docs/consumer.md): Pact is a consumer-driven contract testing tool. The consumer specifies the expected interactions with the provider, which are used to create a contract. This contract is then used to verify that the provider meets the consumer's expectations. - [Provider Testing](/implementation_guides/python/docs/provider.md): Pact is a consumer-driven contract testing tool. The consumer specifies the expected interactions with the provider, which are used to create a contract. This contract is then used to verify that the provider behaves as expected. - [Examples](/implementation_guides/python/examples.md): This directory contains examples demonstrating how to use Pact in Python for various testing scenarios. While this document and the documentation within the examples themselves are intended to be mostly self-contained, it is highly recommended that you read the Pact Documentation as well. - [Overview](/implementation_guides/python/readme.md):