#product-os #print #server #version #full #operating #protocols

product-os-print-server

Product OS : 打印服务器提供基于IPP协议1.1版本的完整功能的IPP打印服务器

1 个不稳定版本

0.0.1 2023年11月15日

#37 in #product-os

AGPL-3.0-only

120KB
2K SLoC

Product OS : 打印服务器

Product OS : 打印服务器提供基于IPP协议1.1版本的完整功能的IPP打印服务器。

什么是Product OS?

Product OS是一组包的集合,提供不同工具和功能,可以协同工作,以便于在Rust生态系统中更容易地构建产品。

安装

使用Rust包管理器cargo来安装Product OS : 打印服务器。

cargo add product-os-print-server

或者将Product OS : 打印服务器添加到您的cargo.toml [packages]部分。

product-os-print-server = { version = "0.0.1", features = [], default-features = true, optional = false }

功能

Product OS 打印服务器通过利用现有的Rust库支持许多功能,以仅使用配置的方式连接API

  • 建立IPP或IPPS打印服务器
  • 支持使用Bonjour(Zeroconf)进行自动发现
  • 支持基本打印操作,包括打印、取消和查询
  • 提供处理打印作业的辅助特质 - 允许自定义处理打印请求内容的行为

为了充分利用打印服务器,您应该使用Product OS : 服务器crate。

// Feature samples TODO

使用

use std::str::FromStr;
use std::sync::Arc;
use parking_lot::Mutex;


pub fn main() {
    let config = product_os_configuration::Configuration::from_file("./config.json");
    let mut server = product_os_server::ProductOSServer::new_with_config_sync(config.clone());

    let printer = Arc::new(Mutex::new(product_os_print_server::ProductOSIPPServer::new(String::from("test-ipp-printer-jd"), String::from("ipp://127.0.0.1:8443/"), 8443, false, Arc::new(print_processor::PrintProcessor::new()))));
    server.add_feature_service_mut_sync(printer.clone(), None);

    match server.start_sync() {
        Err(e) => println!("Error occurred: {}", e),
        Ok(r) => println!("Server Started: {:?}", r)
    };
}

贡献

目前还没有贡献,但很快将在公共仓库上提供。

许可

GNU AGPLv3

依赖

~16–26MB
~694K SLoC