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 在 网页编程 中排名
每月下载量 482 次
被 2 crates 使用
120KB
2.5K SLoC
ipp.rs
Rust 的 IPP 协议实现。此 crate 实现了在 RFC 8010、RFC 8011 中定义的 IPP 协议。
它支持同步和异步操作(请求和响应),这由 async
功能标志控制。
以下为支持的构建时功能
async
- 启用异步 APIasync-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-MIT 或 LICENSE-APACHE)
依赖项
~1–15MB
~194K SLoC