omnibase_spi
ONEX Service Provider Interface - Protocol definitions
What it is and what it does
omnibase_spi is a Service Provider Interface package that defines the protocol contracts for ONEX (OmniNode eXecution), a distributed service execution framework. It contains 231 runtime-checkable Python Protocol definitions across 39 protocol domains, plus frozen data-only contracts for wire formats. The package deliberately contains only interface definitions and shared data shapes imported from omnibase_core—no implementations, business logic, transport clients, or I/O behavior. This separation of concerns allows implementation packages to implement the protocols while keeping the SPI layer stable and reusable.
The package enforces strict dependency direction: it imports from omnibase_core but never from implementation packages, and implementation packages import from it. This design lets application and product repositories depend on the SPI for type boundaries without coupling to any concrete implementation. It requires Python 3.12 or later and uses pydantic and typing_extensions as runtime dependencies.
Use it for:
- Define service boundaries in a microservices architecture where multiple teams implement the same protocol contracts independently.
- Establish type-safe interfaces for distributed services that need to be swapped or upgraded without breaking consumers.
- Create wire-format contracts for cross-service communication that remain stable even as underlying implementations evolve.
- Build plugin or adapter systems where third-party code must implement known protocol interfaces to integrate with a platform.
- Enforce architectural layering by making protocol definitions the only dependency between abstraction and implementation layers.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Defines runtime-checkable Protocol contracts and wire-format data contracts for the ONEX service execution framework, enabling type-safe service boundaries across distributed implementations.
Yes, if you are building a distributed service system or framework that needs stable, implementation-agnostic protocol definitions. The package is actively maintained, has no known vulnerabilities, and uses a permissive MIT license. It is still in Beta, so verify that the protocol surface is stable for your use case. Install it if you need to define service boundaries that multiple implementations can satisfy independently.
Install
omnibase-spi on PyPI
pip
pip install omnibase-spiuv
uv add omnibase-spipoetry
poetry add omnibase-spiInstalling omnibase_spi
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a recent release 42 days ago. Requires Python 3.12 or later and depends on omnibase_core, pydantic, and typing_extensions—all standard, lightweight dependencies.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations beyond attribution.
Quickstart
pip install omnibase_spi
from typing import Protocol, runtime_checkable
@runtime_checkable
class ProtocolExampleService(Protocol):
async def run(self, payload: bytes) -> bytes:
...
Requires Python 3.12 or later.
Verify before relying
- Whether the 231 protocol files across 39 domains are all exported or only a subset is public API
- Performance characteristics when runtime_checkable protocols are used at scale in high-throughput services
- Stability guarantees for the protocol contract surface given the Beta development status
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — omnibase-core, pydantic, typing-extensions |
| Maintenance | actively maintained — 42 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 137,737/month — #11,360 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: omnibase_spi-0.23.1-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
omnibase-compatProvides shared structural types—enums, DTOs,…
unclear · top 15,000 on PyPI
omnibase_coreomnibase_core provides the ONEX platform…
permissive · top 15,000 on PyPI
numeraryProvides runtime-checkable protocols and type…
permissive · top 15,000 on PyPI
alibabacloud-gateway-spiProvides a service provider interface (SPI) for…
permissive · top 5,000 on PyPI
uipath-runtimeProvides foundational runtime interfaces and…
unclear · top 5,000 on PyPI
obspecDefines a Python protocol for abstracting…
permissive · top 15,000 on PyPI
ciris-edgeA Rust-based transport and replication layer…
agpl · top 15,000 on PyPI
langchain-protocolProvides Python type definitions (TypedDict,…
permissive · top 1,000 on PyPI
uhiUHI defines and documents a standard interface…
permissive · top 15,000 on PyPI
pytest-archonPytest-archon lets you define and test…
permissive · top 15,000 on PyPI