#pact #cdc #mockserver


Pact-Rust support library that implements in process mock server

73 releases (9 stable)

1.2.4 Jan 25, 2024
1.2.3 Aug 28, 2023
1.2.2 Jul 27, 2023
1.0.0 Feb 16, 2023
0.2.0 Jul 13, 2016

#142 in Testing

Download history 1256/week @ 2023-11-03 1306/week @ 2023-11-10 1334/week @ 2023-11-17 1487/week @ 2023-11-24 1513/week @ 2023-12-01 1650/week @ 2023-12-08 1552/week @ 2023-12-15 1249/week @ 2023-12-22 1915/week @ 2023-12-29 1436/week @ 2024-01-05 1509/week @ 2024-01-12 1715/week @ 2024-01-19 1762/week @ 2024-01-26 1669/week @ 2024-02-02 2008/week @ 2024-02-09 2069/week @ 2024-02-16

7,822 downloads per month
Used in 7 crates (6 directly)

MIT license

34K SLoC

Pact Mock Server library

This library implements the in-process mock server for matching HTTP requests and generating responses from a pact file. It implements the V3 Pact specification and V4 Pact specification.

Online rust docs

All the exported functions using C bindings for controlling the mock server are now found in the pact_ffi module.


Creates a mock server. Requires the pact JSON as a string as well as the port for the mock server to run on. A value of 0 for the port will result in a port being allocated by the operating system. The port of the mock server is returned.


Simple function that returns a boolean value given the port number of the mock service. This value will be true if all the expectations of the pact that the mock server was created with have been met. It will return false if any request did not match, an un-recognised request was received or an expected request was not received.


This returns all the mismatches, un-expected requests and missing requests in JSON format, given the port number of the mock server.


Shuts down the mock server with the provided port. Returns a boolean value to indicate if the mock server was successfully shut down.


Trigger a mock server to write out its pact file. This function should be called if all the consumer tests have passed. The directory to write the file to is passed as the second parameter. If None is passed in, the current working directory is used. If overwrite is true, the file will be overwritten with the contents of the current pact. Otherwise it will be merged with any existing pact file.

Returns Ok if the pact file was successfully written. Returns an Err if the file can not be written, or there is no mock server running on that port.

Crate features

All features are enabled by default

  • datetime: Enables support of date and time expressions and generators.
  • xml: Enables support for parsing XML documents.
  • plugins: Enables support for using plugins.
  • multipart: Enables support for MIME multipart bodies.
  • tls: Enables support for mock servers using TLS. This will add the following dependencies: hyper-rustls, rustls, rustls-pemfile, tokio-rustls.


~1M SLoC