skillfed

oslo.versionedobjects

Oslo Versioned Objects library

oslo-versionedobjects v3.11.0 180.8K downloads/30d#10,142 on PyPI
Permissive license Apache-2.0 Active released

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-versionedobjects

uv

uv add oslo-versionedobjects

poetry

poetry add oslo-versionedobjects

Installing 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

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

Tags

versioned object modelRPC serialization frameworkdistributed service compatibilityversioned data modeloslo object versioningservice upgrade compatibilitytyped object serialization
openstackrpc-serializationdistributed-systems

More Distributed Computing packages