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
每月160次下载
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上链接生成的静态库需要您也链接到pthread
、dl
和m
。
使用CMake构建
为了方便,此工具与CMake集成,已配置为
- 运行Cargo来构建库文件。
- 运行Cbindgen构建头文件。
- 运行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