- Added additional attribute constants
- Updated 'thiserror' dependency to version 2
- Added
rustls
backend support via two new feature flags:client-rustls
andasync-client-rustls
- Only
async-client-tls
feature is enabled by default
- Added IPP attributes required by Windows Print Protection mode
- Added IppParser::parse_parts function to only read and parse IPP headers without payload
- Added missing
serde
feature to the manifest file - Added IppRader::into_inner function
- Added Eq and Hash derivation for IppValue
- Added into_xx methods for attribute models
- Fixed a bug with unsupported attributes not being sent
- Re-added support for
ipp://
scheme in the IPP url
- Fixed #22: placing of attribute into incorrect group
- Added missing text-with-language and name-with-language value support
- Breaking change: IppValue::Collection now uses BTreeMap instead of Vec
- Added support for custom CA certs in the IPP client builder
- Async print example now uses async IPP payload
- Added more operations to ipputil utility: Purge-Jobs, Cancel-Job, Get-Jobs, Get-Job
- Breaking changes in several APIs
- Added blocking client based on
ureq
crate, calledIppClient
- Renamed asynchronous client to
AsyncIppClient
- Added basic auth support in the client builder
- Refactored utility functions
- Moved
IppError
into separate module
- Added
http_header
method to the client builder which allows to specify a custom HTTP header - Added
tls
feature
- Added IppRequestResponse::into_payload
- Fixed improper ordering of 'printer-uri' attribute
- Upgraded tokio dependency to 1.x.
- Added synchronous API (parser and payload) to be used with synchronous HTTP clients.
- Added
async
feature to enable or disable async operations (enabled by default). reqwest
is now the only client behind theclient
feature.- Refactored and simplified internal project structure.
- Added initial multiclient support, selected via
client-isahc
orclient-reqwest
feature. The default client isisahc
. - Use
http::Uri
instead of strings in the APIs.IppValue::Uri
is still a string though because of parsing and format issues from some IPP implementations. - Added
util
module with several high-level utility functions. - Refactored
IppClientBuilder::new
intoIppClient::builder
. - Removed
uri
parameter fromIppOperation::into_ipp_request
method. - Added
From<T: IppOperation>
default implementation forIppRequestResponse
struct. - Refactored
IppVersion
enum into a struct. - Introduced
IppReader
struct for IPP-specific read operations. - Moved examples into a separate subcrate.
- Several internal fixes and cleanups
- Documentation fixes