--- id: pyro5 version: "5.17" license: MIT license_treatment: permissive maintenance: active --- # Pyro5 — Remote object communication library, fifth major version License: permissive · Maintenance: active · Downloads: 374.1K/mo ## What it is and what it does Pyro5 is a pure-Python library that lets you build distributed applications where objects communicate over a network using normal Python method calls. Instead of writing custom network code, you expose Python objects and call methods on them remotely as if they were local—Pyro handles locating the object, serializing arguments, transmitting the call, and returning results. It supports multiple serializers (serpent, json, marshal, msgpack), secure SSL/TLS connections, IPv4/IPv6 and Unix domain sockets, and includes a name server for tracking object locations. The library is designed for ease of use while offering advanced features like automatic reconnection, remote iterators, batched invocations, one-way calls, and correlation IDs for tracing. It has a stable foundation built on over 20 years of Pyro history and runs on CPython 3 and PyPy 3 across different platforms and architectures. The project is currently in low maintenance mode, meaning new features are unlikely but reported bugs are addressed. Use it for: - Build a distributed system where computational tasks run on remote servers and are invoked from a central coordinator using normal Python method syntax. - Create a multi-machine application where objects on different hosts need to communicate transparently without explicit socket or RPC boilerplate. - Implement inter-process communication between Python processes on the same machine or across a network using a name server for dynamic object discovery. - Develop services that expose Python objects and clients invoke methods remotely with automatic serialization and error propagation. - Stream large datasets on-demand from a remote object using remote iterators instead of loading entire collections into memory upfront. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Pyro5 enables remote method calls on Python objects across a network, letting you invoke methods on objects running on other machines as if they were local. Yes, if you need straightforward remote method invocation in a distributed Python system. Pyro5 is mature, permissively licensed, has low install friction, and carries no known vulnerabilities. The trade-off is its low-maintenance status: expect bug fixes but not active feature development. It is well-suited for applications that do not require cutting-edge async patterns or frequent library updates. ## Install pip install pyro5 uv add pyro5 poetry add pyro5 ## Installing Pyro5 Before you install: Installation is straightforward with a single pure-Python wheel and minimal dependencies. The project is in low maintenance mode with only bug fixes expected, though it remains actively monitored and has a stable release history spanning over 20 years of Pyro development. License in practice: MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute Pyro5 freely as long as you include the license notice. Quickstart: pip install pyro5 import Pyro5.api @Pyro5.api.expose class MyObject: def greet(self, name): return f"Hello {name}" uri = Pyro5.api.locate_ns().register("my.object", Pyro5.api.Daemon().register(MyObject())) remote_obj = Pyro5.api.Proxy(uri) print(remote_obj.greet("World")) Requires Python 3.7 or later; both server and client must be reachable over the network or local sockets. Verify before relying: - Whether the project's 'super low maintenance mode' status means critical bugs may see delayed responses. - Performance characteristics and scalability limits for high-throughput distributed systems. - Compatibility guarantees with modern async/await patterns and contemporary Python frameworks. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 374.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags remote method calls python, distributed object communication, RPC library python, network object invocation, inter-process communication, remote python objects, distributed computing python, distributed-systems, rpc, networking [View on SkillFed](https://skillfed.io/packages/pyro5) · [View on PyPI](https://pypi.org/project/pyro5/)