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 (register):
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.2.2.5.tar.gz (38.8 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.2.2.5-py3-none-any.whl (42.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: easyremote-0.1.2.2.5.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for easyremote-0.1.2.2.5.tar.gz
Algorithm Hash digest
SHA256 2035943c7e77dc81ff997d892eabd6eb10277ffc6bcb9a401d2a147b78abf891
MD5 afad36881a56aabf5e8f6ec3a89b73f3
BLAKE2b-256 ff5e2e27b4842cbd4b7f609e9adea81a4337e4c22668dffca056bd83e19161c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: easyremote-0.1.2.2.5-py3-none-any.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for easyremote-0.1.2.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5b1b139f1e1f383cec4da62c52ed788a2d360e920d9deaf72d4c9ccf4e7b42bf
MD5 e3a28659716e1030a7366eaabc9cc078
BLAKE2b-256 f47c471826f4e33a05f4f33121649fb40314c789602d6a22e3e7067244cc3b70

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