All Projects → ancwrd1 → ipp.rs

ancwrd1 / ipp.rs

Licence: other
IPP protocol implementation for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to ipp.rs

ipp-client-kotlin
A client implementation of the ipp protocol written in kotlin
Stars: ✭ 25 (+4.17%)
Mutual labels:  printing, cups, ipp, ipp-protocol
jipp
A Java implementation of IPP
Stars: ✭ 97 (+304.17%)
Mutual labels:  printing, ipp, ipp-protocol
iOS-AirPrint-for-Mac
enable iOS Airprint Sharing on Mac OS
Stars: ✭ 24 (+0%)
Mutual labels:  printing, print, cups
Printthis
jQuery printing plugin; print specific elements on a page
Stars: ✭ 902 (+3658.33%)
Mutual labels:  printing, print
ngx-print
🖨️ A plug n' play Angular (2++) library to print your stuff
Stars: ✭ 124 (+416.67%)
Mutual labels:  printing, print
ansible-cups
Ansible role to install and configure CUPS, assist with installing PPDs and install printers/classes
Stars: ✭ 20 (-16.67%)
Mutual labels:  cups, ipp
Mapbox Gl Print Export For Port
Print/Export for Mapbox GL
Stars: ✭ 14 (-41.67%)
Mutual labels:  printing, print
Printooth
A well documented, high-level Android interface that makes printing via bluetooth printers easier
Stars: ✭ 231 (+862.5%)
Mutual labels:  printing, print
Gutenberg
Modern framework to print the web correctly.
Stars: ✭ 4,425 (+18337.5%)
Mutual labels:  printing, print
Codeprinter
🖨️ Print out code easily
Stars: ✭ 233 (+870.83%)
Mutual labels:  printing, print
chrome-raw-print
Chrome app to enable raw printing from a browser
Stars: ✭ 57 (+137.5%)
Mutual labels:  printing
escpos-tools
Utilities to read ESC/POS print data
Stars: ✭ 145 (+504.17%)
Mutual labels:  printing
consono
The most correct, informative, appealing and configurable variable inspector for JavaScript
Stars: ✭ 17 (-29.17%)
Mutual labels:  print
paper-store
Cold store small files on paper as QR codes -- PGP keys, Bitcoin keys, Tox keys or any other small files in general.
Stars: ✭ 28 (+16.67%)
Mutual labels:  printing
Cocoa-Printer-Server
Make your USB Printers to IP Printers.
Stars: ✭ 22 (-8.33%)
Mutual labels:  ipp-protocol
go-pfcp
PFCP(Packet Forwarding Control Protocol) implementation in Golang.
Stars: ✭ 90 (+275%)
Mutual labels:  cups
barcode
No description or website provided.
Stars: ✭ 27 (+12.5%)
Mutual labels:  printing
Task2pdf
Kanboard - Task2PDF
Stars: ✭ 48 (+100%)
Mutual labels:  print
press-ready
🚀 Make your PDF press-ready PDF/X-1a.
Stars: ✭ 56 (+133.33%)
Mutual labels:  printing
THREE.Highres
High resolution and depth rendering to PNG for Three.js
Stars: ✭ 28 (+16.67%)
Mutual labels:  print

ipp.rs

IPP protocol implementation for Rust. This crate implements IPP protocol as defined in RFC 8010, RFC 8011.

It supports both synchronous and asynchronous operations (requests and responses) which is controlled by the async feature flag.

The following build-time features are supported:

  • async - enables asynchronous APIs
  • client - enables IPP client (based on reqwest crate), requires async feature
  • tls - enables TLS protocol for the client

Documentation

Usage example:

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 = IppClient::new(uri);
    let resp = client.send(operation).await?;
    if resp.header().get_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(())
}

For more usage examples please check the examples folder.

License

Licensed under MIT or Apache license (LICENSE-MIT or LICENSE-APACHE)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].