tool ·invisibles

Same object, different machine.

Move a Python object to another process or node. The code that calls it does not change.

Powersnu.proxy

What it is

A transparent RPC proxy. Call methods on the proxy; they run on the remote object and return the result. Sync stays sync. Async stays async.

No base class. No schema file. No stubs to generate. Expose any Python object; the proxy matches its API exactly.

usage.py
python · 7 locpy
# local
result = service.add(5, 3)
data = await service.fetch("key")
# remote, identical
result = proxy.add(5, 3)
data = await proxy.fetch("key")

Iterators, context managers, operators, exceptions, nested returns. All work over the wire.

What you get.

Three properties that hold whether the object lives here or across the wire.

Any object

Expose a service without inheriting anything. Existing code becomes remote without a rewrite.

Sync and async, native

Two connection channels do what they are good at: a sync pump for sync methods, an async loop for async methods.

Full Python protocol

for x in proxy, with proxy, proxy[key], len(proxy). Custom exceptions come back typed.

Powers Nu.

invisibles is the foundation under nu.proxy, the proxy fabric. Bind a fabric in one process, use it from another; same Refs, over TCP or Unix socket.

Like what you see?

The project is young. Star it, join the room, watch what we ship next.