All Projects → roncapat → WSD-python

roncapat / WSD-python

Licence: GPL-3.0 license
Web Services for Devices (WSD) tools and utilities for cross platform support

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to WSD-python

pt1230
Brother P-Touch 1230PC Linux interface
Stars: ✭ 25 (+13.64%)
Mutual labels:  printer, cups
ErpNet.FP
ErpNet.FP is a light-weight cross-platform Http server facilitating printing to fiscal printers through simple JSON Api.
Stars: ✭ 75 (+240.91%)
Mutual labels:  printer, protocol
jfreesane
Java API to talk to the SANE scanning daemon
Stars: ✭ 46 (+109.09%)
Mutual labels:  scanner, sane
Paperwork
Personal document manager (Linux/Windows) -- Moved to Gnome's Gitlab
Stars: ✭ 2,392 (+10772.73%)
Mutual labels:  scanner, sane
Keepalived
Keepalived
Stars: ✭ 2,877 (+12977.27%)
Mutual labels:  daemon, protocol
Whatpulse
WhatPulse reverse engineered
Stars: ✭ 30 (+36.36%)
Mutual labels:  daemon, protocol
wiasane
Scanner Access Now Easy - WIA Driver
Stars: ✭ 109 (+395.45%)
Mutual labels:  scanner, sane
ansible-cups
Ansible role to install and configure CUPS, assist with installing PPDs and install printers/classes
Stars: ✭ 20 (-9.09%)
Mutual labels:  printer, cups
rsync
gokrazy rsync
Stars: ✭ 308 (+1300%)
Mutual labels:  daemon, protocol
diepssect
A public repo for hacky diep stuff - networking protocol, WebAssembly, memory editing, & physics
Stars: ✭ 26 (+18.18%)
Mutual labels:  protocol
Rubicon
Swift parser + mock generator
Stars: ✭ 42 (+90.91%)
Mutual labels:  protocol
mqtt rs
MQTT broker in Rust
Stars: ✭ 23 (+4.55%)
Mutual labels:  protocol
nativescript-star-printer
🌟 Print directly to Star Micronics printers from your NativeScript app! http://www.starmicronics.com/
Stars: ✭ 28 (+27.27%)
Mutual labels:  printer
stock scan1
Working Demo of Barcode/QR code scanner using VueJs+Quasaar+Cordova
Stars: ✭ 42 (+90.91%)
Mutual labels:  scanner
minecraft-protocol
Library for decoding and encoding Minecraft packets
Stars: ✭ 20 (-9.09%)
Mutual labels:  protocol
StarPRNT-SDK-iOS-Swift
StarPRNT SDK for iOS including libraries for supporting application development for Star printers.
Stars: ✭ 24 (+9.09%)
Mutual labels:  printer
google-music-manager-uploader
Google Music Manager Uploader module / Easily upload MP3 (folder) to Google Music
Stars: ✭ 21 (-4.55%)
Mutual labels:  daemon
LXFProtocolTool
由Swift中协议方式实现功能的实用工具库【Refreshable、EmptyDataSetable 支持 Rx 】
Stars: ✭ 101 (+359.09%)
Mutual labels:  protocol
athenz-authorizer
athenz policy management library for golang
Stars: ✭ 15 (-31.82%)
Mutual labels:  daemon
protocol-registry
This module allows you to set custom protocol handler for your nodejs app.
Stars: ✭ 45 (+104.55%)
Mutual labels:  protocol

I'm a student, and I don't have a job yet, so if you like my repo, please consider to gift me a cup of coffee

Donate

PyWSD

Web Services for Devices (WSD) tools and utilities for cross platform support.

Documentation

You can browse the documentation on readthedocs.io.

Abstract

The Web Services for Devices is a set of specifications aimed to handle network communication between devices which offer some kind of functionality or need to signal events. There's a discovery protocol, a way to retrieve a list of services from endpoints, and a set of rules built on top of XML/SOAP messages over UDP for commands/events.

Windows uses WSD as a way to discover and interact with a wide range of printers and scanners nowadays. Other WSD applications are less-known, but this project aims to cover the standard with a generic set of tools suitable even for those devices.

Linux and Mac OS users everyday have to deal with a not-so-good (or absent) full support for printers/scanners. For example, Canon does not support Linux at all, and distributes bugged drivers that are not fully open source, nor integrates well with existing and coherent Linux printing and scanning frameworks. Device-initiated operations are not supported at all. This is going to change: WSD standards are not well-known, but fortunately they are documented, and easy to reverse-engineer if needed.

So my idea is to get a good comprehension of the protocol, implement a draft library and a set of associated tools in python, then test it until the implementation is mature. The natural next step will be C implementation, that will finally enable the SANE and CUPS wsd backends implementations.

A library for simulating/implementing new WSD devices could also be developed, and it would allow seamless integration of devices shared from a linux instance and a Windows-enabled client, for example.

Developer notes

Required python version: 3.6
Docstring style complies IntelliJ PyCharm suggestions

Project status

As you can see, I'm the only developer. I need people to test my library, develop tools from it (some demo bits are among the modules, but they're just for on-the-fly debug while developing).

Here's the list of targets for now:

  • Python library for scanners (70% done IMHO)
  • C library for scanners
  • SANE backend for scanners
  • Linux daemon for device-initiated scans

Protocol public resources (PDF/DOC/HTML from MSDN/W3C/SOAP)

WS-Discovery
WS-Transfer
PNP-X

WSD-Profiles

WS-Print
WS-Scan

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].