oslo.versionedobjects
Oslo Versioned Objects library
What it is and what it does
oslo.versionedobjects is a library for building versioned data models in distributed systems, particularly OpenStack services. It provides a base class and field system that automatically handle serialization, deserialization, and versioning of objects sent over RPC, allowing services to evolve their data schemas without breaking compatibility when different versions communicate.
The library is designed for infrastructure teams building microservices or distributed applications where multiple service instances may be at different code versions simultaneously. It integrates with oslo.messaging for RPC transport and oslo.config for configuration, making it part of the broader OpenStack libraries ecosystem. The main value is reducing the boilerplate needed to maintain backward-compatible data models across service upgrades.
Use it for:
- Define versioned data models in OpenStack services that need to communicate across different deployed versions
- Serialize and deserialize complex objects for RPC calls while maintaining upgrade compatibility
- Enforce field typing and validation on objects passed between distributed service components
- Track object schema evolution and automatically handle version mismatches in production deployments
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
oslo.versionedobjects provides a versioned object model for distributed systems that handles serialization, field typing, and RPC-friendly method calls to maintain compatibility across service upgrades.
Yes, if you are building distributed services or working within an OpenStack environment where versioned object compatibility across service upgrades is a requirement. The library is actively maintained, has no known vulnerabilities, and low install friction. Not relevant for standalone applications or projects not using oslo.messaging.
Install
oslo-versionedobjects on PyPI
pip
pip install oslo-versionedobjectsuv
uv add oslo-versionedobjectspoetry
poetry add oslo-versionedobjectsInstalling oslo.versionedobjects
Before you install
Low install friction with a pure-Python wheel. Active maintenance (latest release 2026-07-09) and support for current Python versions. Depends on seven oslo.* libraries and netaddr, all stable OpenStack components.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, typical for OpenStack infrastructure libraries.
Quickstart
pip install oslo.versionedobjects
from oslo_versionedobjects import base
class MyVersionedObject(base.VersionedObject):
fields = {'name': base.fields.StringField()}
obj = MyVersionedObject(name='example')
Requires Python 3.11 or later; intended for OpenStack or distributed RPC environments where oslo.messaging and oslo.config are available.
Verify before relying
- Specific use-case examples beyond distributed service upgrade scenarios
- Performance characteristics when handling large object graphs or high RPC throughput
- Backward compatibility guarantees across major version transitions
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — oslo.config, oslo.context, oslo.messaging, oslo.utils, oslo.log, oslo.i18n, netaddr |
| Maintenance | actively maintained — 36 days since the last release |
| First released | |
| Downloads | 180,762/month — #10,142 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: oslo_versionedobjects-3.11.0-py3-none-any.whl
Tags
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework…
permissive · top 100 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
cloudpickleCloudpickle extends Python's standard pickle…
permissive · top 1,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
portalockerPortalocker provides cross-platform file…
permissive · top 1,000 on PyPI
rayRay is a distributed computing framework that…
permissive · top 1,000 on PyPI
oslo.messagingOslo Messaging provides a unified API for RPC…
permissive · top 15,000 on PyPI
oslo.serializationoslo.serialization provides serialization and…
permissive · top 5,000 on PyPI
oslo.upgradecheckProvides a framework for writing and running…
permissive · top 15,000 on PyPI
WSMEWSME simplifies REST API development by letting…
permissive · top 15,000 on PyPI
oslo.policyoslo.policy enforces role-based access control…
permissive · top 15,000 on PyPI
oslo.vmwareoslo.vmware provides a library for common…
permissive · top 15,000 on PyPI
oslo.cacheoslo.cache wraps dogpile.cache to provide a…
permissive · top 15,000 on PyPI
oslo.concurrencyoslo.concurrency provides locking mechanisms…
permissive · top 15,000 on PyPI
oslo.contextoslo.context provides utilities to store and…
permissive · top 5,000 on PyPI
oslo.rootwraposlo.rootwrap provides fine-grained filtering…
permissive · top 15,000 on PyPI