3个版本 (重大更新)
0.3.0 | 2024年5月23日 |
---|---|
0.2.0 | 2024年5月22日 |
0.1.0 | 2024年4月19日 |
#258 in 异步
每月125次下载
745KB
21K SLoC
libmqm-sys
IBM® MQ接口(MQI)和MQ管理接口(MQAI)的本地绑定
您可以使用 libmqm-sys
来
- 通过MQI函数连接到IBM MQ服务器,发送和接收MQ消息
- 通过MQAI函数管理IBM MQ服务器
此crate提供的函数是IBM提供库中暴露的原始 unsafe
函数。开发人员应在这些函数上构建安全的Rust API包装器。
支持编译时动态链接和运行时动态链接。
用法
-
从IBM下载并安装可分发的客户端:https://ibm.biz/mq93redistclients
-
将客户端安装到
/opt/mqm
或其他位置。 -
将MQ_HOME环境变量设置为安装位置。
MQ_HOME=/opt/mqm
-
在您的
Cargo.toml
中添加以下内容[dependencies] libmqm-sys = "0.3.0"
-
在源代码中使用crate
use libmqm-sys as mqsys;
示例
#[cfg(test)]
mod test {
use std::ptr::addr_of_mut;
use libmqm_sys::lib;
#[test]
fn connect() {
unsafe {
let mut hconn = lib::MQHC_DEF_HCONN;
let mut comp_code = lib::MQCC_UNKNOWN;
let mut reason = lib::MQRC_NONE;
let mut qmgr: [i8; 48] = [b' '; 48]; // All spaces
lib::MQCONN(
addr_of_mut!(qmgr).cast(),
addr_of_mut!(hconn),
addr_of_mut!(comp_code),
addr_of_mut!(reason),
);
assert_eq!(reason, lib::MQRC_NONE, "MQRC");
assert_eq!(comp_code, lib::MQCC_OK, "MQCC");
lib::MQDISC(addr_of_mut!(hconn), addr_of_mut!(comp_code), addr_of_mut!(reason));
};
}
}
功能标志
功能 | 描述 |
---|---|
link (默认) | 支持在编译时链接MQ库 |
bindgen (默认) | 从MQI库生成绑定 |
dlopen2 | 支持使用 dlopen2 在运行时加载MQ库 |
mqai | 公开MQAI函数 |
pcf | 生成PCF结构 |
exits | 生成退出结构 |
状态
以下需要进一步工作
- MacOS上的测试和支持。
- 文档。
- 测试和支持MQI的旧版本。
- 添加复杂示例。
贡献
欢迎所有反馈、建议、贡献和改进。
支持
无法保证与crate的任何未来版本兼容;API可能会根据反馈和改进而更改。在发布稳定crate之前可能会发生持续重构。
此软件包按原样提供,不提供任何支持或更新的保证。
此软件包未经IBM批准、认可、支持或推广。您不能使用IBM正式支持渠道(案例/PMR)来获取关于此软件包使用的帮助。
许可证
许可协议
- Apache License 2.0(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
依赖项
~0–2.3MB
~42K SLoC