3个不稳定版本
0.2.1 | 2023年12月15日 |
---|---|
0.2.0 | 2023年12月13日 |
0.1.0 | 2023年11月26日 |
在Windows API中排名第103
7MB
151K SLoC
包含(静态库,365KB)InternalFabricUUID.lib,(DOS可执行文件,240KB).windows/winmd/sf.winmd,(静态库,165KB)FabricUUID.lib,(静态库,135KB)FabricUUID.lib,(静态库,195KB)InternalFabricUUID.lib,(静态库,5KB)FabricClient.lib 等 更多。
sf-rs
该包包含使用Windows原生COM API调用Service Fabric(SF)的Rust绑定。SF API通过我们从github.com/Azure/sf-c-util项目获取的IDL文件进行指定。
生成sf.winmd
第一步是从SF IDL文件构建sf.winmd
文件。我们使用win32metadata工具链来完成这项工作,该工具链知道如何处理IDL文件并生成.winmd
文件。已经创建了一个msbuild项目文件来完成此操作,您可以在.metadata/generate.proj中找到它。我只是遵循了博客文章"为Rust的windows包生成元数据"中的说明来编写此文件。以下是您需要执行的操作来生成(或重新生成)sf.winmd
-
如果您尚未安装,请使用Visual Studio Installer安装名为
MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (最新)
的Visual Studio组件。如果您在未来进行此操作时,VS 2022已经成为过时的旧软件,请用当前的最新技术替换2022。 -
打开Visual Studio开发终端,导航到
.metadata
文件夹,然后运行
git submodule init --update
dotnet build
这就完成了。这将在.windows\winmd
文件夹中生成sf.winmd
文件。
生成Rust绑定
接下来,我们将从sf.winmd
文件中生成Rust绑定。这是通过使用windows-bindgen和windows-metadata crate实现的。生成此代码位于crates/tools/api/src/main.rs。在位于仓库根目录的终端中运行以下命令以生成(或重新生成)src/bindings.rs。
cargo run --package api
这将处理sf.winmd
并生成bindings.rs
,在编写本说明时,其长度约为132,000行。轻而易举。
依赖项
~134MB
~2M SLoC