-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pact FFI Tracking Issue #317
Comments
Experiment of pact-ruby exposing both it's existing interface, and allowing for access to the pact_ffi interface too, so we can allow for backwards compat with the existing implementation but to allow people to try out new features. https://github.com/safdotdev/pact-ruby-e2e-example/tree/feat/ffi |
See the latest pact blog post for an announcement about sbmt-pact which leverages the pact-ruby-ffi project and implements support for v3/v4 and plugins via the rust core |
📝 Background
One of the strengths of Pact is its specification, allowing anybody to create a new language binding in an interoperable way.
Pact-ruby support up to v2.0 of the pact-specification, and was distributed and used in other languages via travelling ruby.
For a fuller background, please see
For a view of the pact-ruby ecosystem, please see
The main functionality of the Pact-ruby project has been replaced by a core library written in Rust (pact-foundation/pact-reference). This library exposes both command line applications & a foreign function interface which other languages can leverage without the need to re-implement a lot of the logic. The core library helps to maintain parity across the different clients and helps with the adoption of new features.
It has the benefit of supports up to the current Pact V4 specification, which allows end-users to leverage the pact-plugin ecosystem, along with several other quality of life benefits.
For a view of the rust ecosystem, please see
🔍 Overview of the pact-ruby ecosystem
🤔 Challenges
Issues resolved by leveraging the rust core
The rust core may exhibit different behaviour than the current ruby core. In some cases, leveraging the rust core may fix existing defects raised against the pact-ruby projects. Below are a list of some to consider
Validation
The text was updated successfully, but these errors were encountered: