14次重大发布
0.15.0 | 2023年9月10日 |
---|---|
0.13.0 | 2023年9月1日 |
0.11.0 | 2022年5月26日 |
0.8.0 | 2022年1月11日 |
0.6.0 | 2021年9月3日 |
157 在 Windows API 中排名
每月72 次下载
430KB
10K SLoC
gqlmapi-rs
此crate的C++部分基于 Electron-GqlMAPI。与该项目不同,没有V8引擎或Node互操作/线程要求。但我为该API投影编写了足够多的支持代码和状态管理,因此决定将其用作Rust API投影的基础。
Electron堆栈的下一层是 Electron。此堆栈的下一层是对应的 eMAPI。在堆栈中相应的下一层是一个名为 Tauri GqlMAPI 的 Tauri 应用程序,它以比 Electron
更轻量级的方式执行相同的功能。
入门
此项目仅在Windows上构建,并且我只测试了x64构建。它要求您已安装 CMake 和 vcpkg,Visual Studio 2022中包含的版本可以正常工作。
您需要设置一个环境变量,以便告诉 build.rs 它的位置,或者在实际构建此crate之前安装用户范围的vcpkg集成。在这个例子中,我的 vcpkg
位于我的用户配置文件下的一个名为 source\repos\microsoft\vcpkg
的子目录中,我针对的是 x64-windows-static
,因此我不需要从vcpkg复制任何DLL。
> set VCPKG_ROOT=%USERPROFILE%\source\repos\microsoft\vcpkg
或
> vcpkg integrate install
build.rs
脚本根据Rust目标确定目标平台 x64-windows
或 x86-windows
,如果您启用了 crt-static
目标功能,它还使用 -static
三联组。 提示:如果您不想与您的应用程序一起重新分发 gqlmapi
和 cppgraphqlgen
的DLL,请尝试将其添加到项目的 .cargo/config.toml
文件中:
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
确保您也已克隆了 gqlmapi
子模块。如果您没有递归地克隆此存储库,您仍然可以使用几个git命令下载子模块
> git submodule init
> git submodule update
之后,您应该准备好使用 cargo build
进行构建。
依赖项
- Microsoft Outlook 用于运行时 MAPI 支持
- gqlmapi 用于将 C++ GraphQL 绑定到 MAPI
- vcpkg 包管理器用于 GqlMAPI 的 C++ 依赖项
- cmake crate 用于自动构建 gqlmapi
- cxx crate 用于生成 C++ 绑定
依赖项
~132MB
~2M SLoC