https://github.com/surpher/pactswiftmockserver
A Swift wrapper around `libpact_ffi` and exposed as XCFramework
https://github.com/surpher/pactswiftmockserver
contract-testing mock-server pact-consumer pact-contract swift
Last synced: 10 months ago
JSON representation
A Swift wrapper around `libpact_ffi` and exposed as XCFramework
- Host: GitHub
- URL: https://github.com/surpher/pactswiftmockserver
- Owner: surpher
- License: mit
- Created: 2021-04-29T02:40:40.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-04T11:03:57.000Z (about 1 year ago)
- Last Synced: 2025-04-17T07:16:49.067Z (11 months ago)
- Topics: contract-testing, mock-server, pact-consumer, pact-contract, swift
- Language: C
- Homepage: https://github.com/surpher/PactSwift
- Size: 790 MB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Support: Support/build_file_list_and_swiftlint
Awesome Lists containing this project
README
# PactSwiftMockServer
[](https://github.com/surpher/PactSwiftMockServer/actions/workflows/build_test.yml)
[](LICENSE.md)
[](https://codecov.io/gh/surpher/PactSwiftMockServer)
> [!WARNING]
> This repository is under heavy development! There are no guarantees or warranty of any kind!
A wrapper around [`libpact_ffi.a`](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_ffi) binary and exposed as XCFramework to be primarily used by [`PactSwift`](https://github.com/surpher/PactSwift).
This repository contains the source code, scripts and tools required to generate a [PactSwiftMockServer.xcframework](https://github.com/surpher/PactSwiftMockServerXCFramework) binary package.
It is referenced and set as a dependency in [`PactSwift`](https://github.com/surpher/PactSwift) swift package.
See [LICENSE.md](LICENSE.md) for licensing information.
> [!IMPORTANT]
> The `libpact_ffi.a` binaries for the supported architectures add up to **`>200MB`** with each new built version. Because of this the repository size blew up to unsustainable levels.
>
> Compiling source code found in this repo and artifacts built from submodules into an XCFramework, zipping it up, and shared as a binary target with `checksum` is currently the only way to keep the payload at *`~90MB`* per package resolve.