oslo.versionedobjects
Oslo Versioned Objects library
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; intended for OpenStack or distributed RPC environments where oslo.messaging and oslo.config are available.
- Low install friction with a pure-Python wheel.
- Active maintenance (latest release 2026-07-09) and support for current Python versions.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions, typical for OpenStack infrastructure libraries.
last release 2026-07-09 (36 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 180,762 downloads/mo, #10,142 on PyPI
Alternatives
Verify before relying
pip install oslo.versionedobjects
from oslo_versionedobjects import base
class MyVersionedObject(base.VersionedObject):
fields = {'name': base.fields.StringField()}
obj = MyVersionedObject(name='example')- 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
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 on it.
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
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.
Requires Python 3.11 or later; intended for OpenStack or distributed RPC environments where oslo.messaging and oslo.config are available.
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')
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 packagesoslo.configoslo.contextoslo.messagingoslo.utilsoslo.logoslo.i18nnetaddr |
| 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 |
| Classifiers | Environment :: OpenStackIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: Apache Software LicenseOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Typing :: Typed |
Evidence: oslo_versionedobjects-3.11.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “versioned object model”
- oslo.versionedobjectsoslo.versionedobjects provides a versioned object model for…
- arizeArize is a Python client library for interacting with the Arize AI…
- spacy-legacyProvides legacy registered functions and model architectures for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Distributed Computing packages
gRPC Python is an HTTP/2-based RPC framework that enables you to define and call remote procedures across network boundaries using protocol buffers for serialization.
Install it if you need RPC communication in a distributed system or are integrating with existing gRPC services.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
Cloudpickle extends Python's standard pickle module to serialize lambda functions, interactively-defined functions and classes, and other constructs that the default pickle cannot handle, making it suitable for cluster computing and remote code execution.
Install it if you need to serialize lambda functions, interactively-defined code, or non-standard Python constructs for cluster computing or distributed execution.
Provides a unified, open()-compatible Python API for streaming large files from remote storage (S3, GCS, Azure, HDFS, SFTP, HTTP) and local filesystems, with transparent compression support.
Install it if you work with large files on cloud storage or remote systems and want to avoid writing boilerplate around multiple SDKs.
Portalocker provides cross-platform file locking with support for exclusive and shared locks, plus Redis-based distributed locks and process-aware PID file locking.
Install it if you need file or process coordination; the optional extras (pywin32, redis) are only required for specific lock types.
Ray is a distributed computing framework that scales Python applications from a single machine to multi-node clusters, providing abstractions for parallel tasks, stateful actors, and shared objects.
See also oslo.messaging · oslo.serialization · oslo.upgradecheck · WSME · oslo.policy · oslo.vmware · oslo.cache · oslo.concurrency · oslo.context · oslo.rootwrap