Skip to main content

Easy remote function execution framework

Project description

EasyRemote

EasyRemote Logo

PyPI version License: MIT Python Version

A lightweight framework for hassle-free remote computing resource sharing.

English | 中文

Why EasyRemote?

Are you tired of:

  • Paying expensive cloud GPU fees for AI development?
  • Struggling with complex deployment for demos?
  • Looking for ways to share computing resources within your team?

EasyRemote lets you expose local computing resources (AI models, data processing functions) as remote services with just a few lines of code. All you need is a cheap VPS!

# It's as simple as this:
from easyremote import ComputeNode

# Initialize ComputeNode with VPS address and unique node ID
node = ComputeNode(
    vps_address="your-vps-ip:8080",
    node_id="basic-compute"
)

@node.register
def run_model(input_data):
    return your_ai_model(input_data)  # Executes on your local GPU

if __name__ == "__main__":
    node.serve()

Features

  • 🚀 Super Simple: Turn any function into a remote service with a single decorator
  • 💰 Cost-Effective: Use your local GPU through an inexpensive VPS
  • 🔒 Private & Secure: All computation stays on your local machine
  • 🌐 Flexible Deployment: Perfect for demos, prototypes, and team collaboration

Quick Start

1. Installation

pip install easyremote

2. Set Up VPS (Gateway&&Call)

from easyremote import Server

app = FastAPI()
server = Server(port=8080)

@remote(node_id="basic-compute")
def add(a: int, b: int) -> int:
    pass

3. Configure Local Node

from easyremote import ComputeNode

# Connect to your VPS
node = ComputeNode("your-vps-ip:8080")

# Define your remote functions
@node.register
def process_data(data):
    return heavy_computation(data)  # Runs locally

# Start serving
node.serve()

Advanced Usage

Async Support

@node.register(async_func=True)
async def async_process(data):
    result = await complex_async_operation(data)
    return result

Streaming Results

@node.register(stream=True)
def stream_results(data):
    for chunk in process_large_dataset(data):
        yield chunk

Real-world Examples

Check out our examples directory for:

  • AI Model Serving
  • Data Pipeline Processing
  • Team Resource Sharing
  • And more!

Architecture

Client -> VPS (Gateway) -> Local Compute Node
                       -> Local Compute Node
                       -> Local Compute Node

Performance

  • Efficient binary protocol
  • Support for large data transfer
  • Automatic connection management

Roadmap

  • Rewrite Distributed Network Using Go's Kitex Framework
  • Multi-node clustering support
  • Enhanced security features
  • Web-based management UI
  • More language SDKs
  • Docker support

Contributing

We welcome contributions! Please see our Contributing Guide

License

MIT License

Contact & Support

Acknowledgments

Special thanks to all contributors who have helped make EasyRemote better!


*If you find EasyRemote useful, please consider giving it a star ⭐*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyremote-0.1.0.2.3.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyremote-0.1.0.2.3-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file easyremote-0.1.0.2.3.tar.gz.

File metadata

  • Download URL: easyremote-0.1.0.2.3.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.0

File hashes

Hashes for easyremote-0.1.0.2.3.tar.gz
Algorithm Hash digest
SHA256 0be3bfc5136e46a0eb52b37505e44eab3def7c0612a1c502b47611621227bc6d
MD5 df21b74f9bf568f5833e853282a1c12b
BLAKE2b-256 456c4f102c2c735445af8a1969dd5d32d441daf4a1d2740a819250dda414a5ce

See more details on using hashes here.

File details

Details for the file easyremote-0.1.0.2.3-py3-none-any.whl.

File metadata

  • Download URL: easyremote-0.1.0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.0

File hashes

Hashes for easyremote-0.1.0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3776e10114b492b41d00a7020649754a4d8478949a45e9d9f00836982cf84aa8
MD5 caad4ca8021d80ff523e091079741ae4
BLAKE2b-256 6a8626f703d24c77401a4f85527303880cedbfb0756a5bd9bbef2d68719cc6f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page