Releases: noclue/vim_rs
Bump dependencies
The cargo lock files referred to slab 0.4.10 version that had some apparent weakness. This release is a cargo update to push up the lock files. This seems to really only affect the examples. The next bump will not trigger vim_rs and vim_macros version bump.
vSphere 9.0 bindings
What's Changed
This change may break clients as 9.0 introduces a number of new parameters and fields in existing functions and structures.
There are no feature changes to vtui and no new builds.
New Contributors
Full Changelog: v0.2.3...v0.2.4
v0.2.3
vim_rs 0.2.3 & vtui 0.1.2: Property Explorer Edition
Highlights
vim_rs
- 🐞 Critical Fix: Patched vCenter OpenAPI spec to resolve host API failures.
vtui
- 🌳 Property View: Press
Enter
on any object to explore its full API tree (MOB-style!). - 🔗 Linked Object Navigation: Jump to related objects from property references.in property view
- 📥 JSON Export: Press
j
to save object data to JSON. - 🔙 Back Navigation:
Backspace
to backtrack through views. - 📜 Logging: Debugging got easier! Errors now log to
vtui.log
for reporting or analysis.
Full Changelog: v0.2.2...v0.2.3
Task support for vTUI and fixes
- Add tasks to vTUI including navigation to object specific tasks
- Add usage and option for secure TLS to vTUI
- Fix vTUI to show correctly on Mac
- Add fetch_dynamic_property to Client to allow fetching properties by name into known type or into serde_json::Value
- Fixed MethodFault and Event handling in vim_macros
Support loading list of objects, array length property and much improved vTUI
This release main focus is to enhance the vTUI example to show the power of the vim_rs
library to build an inventory browser app. To support this goal minor improvements are made tot eh vim_rs
and vim_macros
libraries to support retrieval and monitoring of list of objects i.e. ListView
as well as support the special length
property on arrays.
vTUI now supports:
- Search using "/"
- Cluster, Host, VM, Network and Datastore views
- Navigation to related objects e.g. VMs running on specific host
- Exit from application using 'Ctrl-C' from any state
- Display of basic vCenter data
The above should represent a minimal UI that is sufficient to check up quickly on your virtual empire.
The work has been inspired by K9s
As part of the release you can find precompiled vtui binaries for few of the popular platforms. Hopefully these work without glitches. Let me know if there are issues like missing libraries and so on. I have not figured out yet installers; digital signature; winget, snap and brew packages.
0.2.0 - PropertyCollector Macros
Added vim_macros crate to aid the work with the PropertyCollector API. The crate includes vim_retrievable
and vim_updatable
macros. These macros come with supporting utilities in the vim_rs
crate. See the examples and documentation for more info.
0.1.0
vim-rs 0.1.0 Release Notes
We're excited to announce the first release of vim-rs, a Rust client library for the VMware by Broadcom Virtual Infrastructure JSON API!
Overview
The vim-rs library provides idiomatic Rust bindings for working with vSphere environments through the VI-JSON API. This initial release implements the full API surface based on the vSphere Management SDK OpenAPI specifications.
Key Features
- Fully Asynchronous: Built on the
tokio
runtime withreqwest
for HTTP communication - Type-Safe API: Comprehensive Rust types generated from OpenAPI specs
- Authentication: Support for basic authentication with username/password
- Service Stubs: Easy access to vCenter managed objects and data structures
- Polymorphic Type Support: Hybrid approach using structs, traits and enums for natural Rust API experience
Getting Started
Add vim-rs to your Cargo.toml:
[dependencies]
vim_rs = "0.1.0"
Connect to vCenter:
let vim_client = ClientBuilder::new(&vc_server)
.basic_authn(&username, &pwd)
.app_details(APP_NAME, APP_VERSION)
.build().await?;
Highlights
- Practical Design: Balances idiomatic Rust with VMware's object-oriented API model
- Performance Focused: Careful design decisions to avoid excessive compile times
- Comprehensive Coverage: Full support for VMware vSphere APIs
- Developer Experience: Intuitive API for working with vCenter resources
Limitations
- Pruned types for
MethodFault
andEvent
hierarchies to manage compilation times and binary size - First compilation may take several minutes due to the size of the generated code
Repository Structure
The repository includes:
vim_rs
: Main library for calling the VIM APIvim_build
: Code generation tool for API bindingsexamples
: Sample programs demonstrating library usageopenapi30
: Indigenous OpenAPI parser used for code generation
We welcome your feedback and contributions as we continue to evolve this library!