--- id: oslo-versionedobjects version: "3.11.0" license: Apache-2.0 license_treatment: permissive maintenance: active --- # oslo.versionedobjects — Oslo Versioned Objects library License: permissive · Maintenance: active · Downloads: 180.8K/mo ## 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 above — 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 pip install oslo-versionedobjects uv add oslo-versionedobjects 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_current - Install friction: low - Maintenance: active - Downloads: 180.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags versioned object model, RPC serialization framework, distributed service compatibility, versioned data model, oslo object versioning, service upgrade compatibility, typed object serialization, openstack, rpc-serialization, distributed-systems [View on SkillFed](https://skillfed.io/packages/oslo-versionedobjects) · [View on PyPI](https://pypi.org/project/oslo-versionedobjects/)