#mq #messaging #message-queue #native-bindings #administration #mqai #mqi

sys libmqm-sys

IBM® MQ接口(MQI)和MQ管理接口(MQAI)的本地绑定

3个版本 (重大更新)

0.3.0 2024年5月23日
0.2.0 2024年5月22日
0.1.0 2024年4月19日

#258 in 异步

Download history 8/week @ 2024-04-22 309/week @ 2024-05-20 1/week @ 2024-06-03 4/week @ 2024-06-10

每月125次下载

Apache-2.0

745KB
21K SLoC

libmqm-sys

IBM® MQ接口(MQI)和MQ管理接口(MQAI)的本地绑定

您可以使用 libmqm-sys

  • 通过MQI函数连接到IBM MQ服务器,发送和接收MQ消息
  • 通过MQAI函数管理IBM MQ服务器

此crate提供的函数是IBM提供库中暴露的原始 unsafe 函数。开发人员应在这些函数上构建安全的Rust API包装器。

支持编译时动态链接和运行时动态链接。

用法

  1. 从IBM下载并安装可分发的客户端:https://ibm.biz/mq93redistclients

  2. 将客户端安装到 /opt/mqm 或其他位置。

  3. 将MQ_HOME环境变量设置为安装位置。

    MQ_HOME=/opt/mqm
    
  4. 在您的 Cargo.toml 中添加以下内容

    [dependencies]
    libmqm-sys = "0.3.0"
    
  5. 在源代码中使用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)来获取关于此软件包使用的帮助。

许可证

许可协议

依赖项

~0–2.3MB
~42K SLoC