vim_rs 0.5.0
Breaking release — two significant changes to the HTTP and XML stacks. Review the migration notes below before upgrading.
Breaking changes
1. reqwest 0.13 + rustls TLS default (#39)
The reqwest dependency moves from 0.12 to 0.13. With reqwest 0.13 the default TLS backend is rustls (aws-lc-rs provider), not OpenSSL. If your binary previously pulled in openssl-sys transitively through vim_rs, it no longer does.
A new default-client Cargo feature (enabled by default) wraps the turnkey client setup. When it is on, ClientBuilder::new(server) auto-creates a reqwest::Client; insecure(true) and http_client() remain available. When it is off, ClientBuilder::new(server, client) requires you to supply your own reqwest::Client — giving you full control over the TLS provider and proxy configuration.
Migration:
# No change needed for the common case (VI/JSON, default TLS)
vim_rs = "0.5"
# Bring your own client (e.g. native-tls, or rustls with ring)
vim_rs = { version = "0.5", default-features = false }
reqwest = { version = "0.13", default-features = false, features = ["rustls-no-provider", "charset", "http2", "system-proxy"] }
rustls = { version = "0.23", default-features = false, features = ["ring"] }See the tls_rustls_only example for a fully OpenSSL-free dependency graph.
To verify no openssl-sys is in your tree:
cargo tree -i openssl-sys # should exit 101 with "did not match any packages"
2. Metadata-driven SOAP/XML deserialization (xml feature, #38)
The xml/de.rs driver is rewritten to follow declared API field types from the codegen registry (api_field_registry, data_type_aware) rather than guessing from the wire shape. This fixes a class of deserialization edge cases where subtypes or polymorphic fields were resolved incorrectly against the previous heuristic driver.
Support for non-vim namespaces (VSAN, PBM, etc.) remains absent in this release.
What's new
default-clientfeature: turnkeyClientBuilderwithout manual reqwest setup;insecure(true)and.http_client()builder helpers available when the feature is on.reqwest/cookiesis now enabled only with thexmlfeature. VI/JSON session authentication uses thevmware-api-session-idheader; the cookie jar is only activated on the SOAP path.
Full changelog since 0.4.4
See CHANGELOG.md for the complete entry.
The 0.4.4 release (vcsim compatibility, CacheManager filter-change cancel, ObjectRetriever::retrieve_object, vim_macros optional-path ? marker, property-cache race fix) shipped as a patch on the 0.4.x line and is included in this release.
Crates published
| Crate | Version |
|---|---|
vim_rs |
0.5.0 |
vim_macros |
0.5.0 |