60个版本

0.4.22 2024年7月18日
0.4.20 2024年5月9日
0.4.18 2024年2月26日
0.4.11 2023年11月27日
0.0.0 2021年7月11日

#43 in FFI

Download history 160/week @ 2024-05-07 3/week @ 2024-05-14 12/week @ 2024-05-21 1/week @ 2024-05-28 9/week @ 2024-06-04 169/week @ 2024-06-18 36/week @ 2024-07-02 134/week @ 2024-07-16 12/week @ 2024-07-23 14/week @ 2024-07-30

每月160次下载

MIT授权

2.5MB
51K SLoC

Pact FFI

此crate提供对Pact-Rust crates的外部函数接口(FFI),旨在使Pact的核心匹配机制能够被其他语言实现使用。

文档

FFI函数和类型的文档可在https://docs.rs/pact_ffi/latest/pact_ffi/index.html找到,关于集成JSON格式的文档见IntegrationJson.md

依赖项

此crate需要

  • cbindgen,一个用于为crate的C用户自动生成头文件的工具。
  • Cargo的nightly-channel版本(用于cbindgen中使用的不可靠标志,以获取crate源代码的宏展开内容)。

它还会尝试查找并使用Doxygen来生成C友好的文档(当然,您也可以使用cargo doc来获取Rustdoc文档)。

注意:在Linux上链接生成的静态库需要您也链接到pthreaddlm

使用CMake构建

为了方便,此工具与CMake集成,已配置为

  1. 运行Cargo来构建库文件。
  2. 运行Cbindgen构建头文件。
  3. 运行Doxygen构建文档。

要使用此CMake构建,您可以执行以下操作

$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .

您还可以选择以下方式安装构建的工件

$ cmake --install . --prefix=<install location (omit to install globally)>

Conan配方

库文件(lib和DLL)作为Conan配方发布到以下仓库:https://pactfoundation.jfrog.io/artifactory/api/conan/pactfoundation-conan。要与CMake项目一起使用,请将此仓库添加为Conan远程,然后使用Conan生成项目的CMake依赖文件。有两个配方,pact_ffi用于使用静态库,pact_ffi_dll用于使用动态库。

$ conan remote add pact-foundation https://pactfoundation.jfrog.io/artifactory/api/conan/pactfoundation-conan
$ conan search pact_ffi -r=pact-foundation
Existing package recipes:

pact_ffi/0.0.0@pact/beta
$ conan search pact_ffi_dll -r=pact-foundation
Existing package recipes:

pact_ffi_dll/0.0.0@pact/beta

示例

此项目还包括通过CMake依赖的示例用法。

在构建示例之前,请确保从总体CMake构建目录(./build)运行以下命令

$ cmake --install . --prefix ./install

然后,从示例目录执行以下操作

$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .

架构

您可以在ARCHITECTURE.md中了解此crate的架构和设计选择。

依赖项

~44–79MB
~1.5M SLoC