19 个版本 (12 个稳定版)

5.0.3 2024年2月1日
5.0.2 2023年12月16日
5.0.1 2023年10月14日
5.0.0 2023年7月30日
0.0.3 2016年9月22日

#178网页编程 中排名

Download history 136/week @ 2024-04-08 69/week @ 2024-04-15 253/week @ 2024-04-22 201/week @ 2024-04-29 163/week @ 2024-05-06 89/week @ 2024-05-13 99/week @ 2024-05-20 83/week @ 2024-05-27 151/week @ 2024-06-03 94/week @ 2024-06-10 63/week @ 2024-06-17 64/week @ 2024-06-24 38/week @ 2024-07-01 179/week @ 2024-07-08 168/week @ 2024-07-15 94/week @ 2024-07-22

每月下载量 482 次
2 crates 使用

MIT/Apache 许可

120KB
2.5K SLoC

ipp.rs

Rust 的 IPP 协议实现。此 crate 实现了在 RFC 8010RFC 8011 中定义的 IPP 协议。

它支持同步和异步操作(请求和响应),这由 async 功能标志控制。

以下为支持的构建时功能

  • async - 启用异步 API
  • async-client - 启用基于 reqwest crate 的异步 IPP 客户端,隐含 async 功能
  • client - 启用基于 ureq crate 的阻塞式 IPP 客户端
  • async-client-tls - 启用具有 TLS 的异步 IPP 客户端
  • client-tls - 启用具有 TLS 的阻塞式 IPP 客户端

默认情况下,所有功能都已启用。使用 default-features=false 依赖项选项来禁用它们。

文档

异步客户端的使用示例

use ipp::prelude::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let uri: Uri = "http://localhost:631/printers/test-printer".parse()?;
    let operation = IppOperationBuilder::get_printer_attributes(uri.clone()).build();
    let client = AsyncIppClient::new(uri);
    let resp = client.send(operation).await?;
    if resp.header().status_code().is_success() {
        let printer_attrs = resp
            .attributes()
            .groups_of(DelimiterTag::PrinterAttributes)
            .next()
            .unwrap();
        for (_, v) in printer_attrs.attributes() {
            println!("{}: {}", v.name(), v.value());
        }
    }
    Ok(())
}

有关更多使用示例,请检查 示例文件夹

许可

受 MIT 或 Apache 许可协议许可 (LICENSE-MITLICENSE-APACHE)

依赖项

~1–15MB
~194K SLoC