List All Pages
RPyC 3.00 Beta has been released
The RPyC site moves to wikidot. It's a much better platform than our previous host.
RPyC 3.0 RC1 released
RPyC 3.0 RC2 released
The tutorial is ready!
A presentation was added to the community page
RPyC now has a new logo!
The site goes public!
RPyC 3.00 final has been released!
The file classic.py was omitted from the distribution; please download again.
Please help to spread the word! Help RPyC gain momentum.
Serg Dobryak has created a port for python 2.3
RPyC 3.01 has been released, fixing minor bugs
We now use the the IRC channel #rpyc on freenode
Serg Dobryak has created a port of RPyC 3.01 for python 2.3
RPyC 3.02 has been released; revised authenticators and the registry mechanism
RPyC 3.0.3 has been released; added utility to manage verifier DBs and changes to the server.
Serg Dobryak has created a port of RPyC 3.03 for python 2.3
RPyC 3.0.4 has been released; fixes a subtle bug in inspect_methods.
A developerWork article by David Mertz!
RPyC 3.0.5 has been released; fixes a bug in the forking server.
RPyC 3.0.6 has been released; fixes a bug in inspect_methods
Marcin Cieslik created rpycd - a UNIX daemon wrapper for classic_server.py
RPyC 3.0.7 has been released; fixes some minor bugs
Join In!
If you want to get involved in developing RPyC, please contact me. I'm currently in need of:
porters to python 2.3, 3.0, IronPython, etc.
site maintainers (fixing typos, errors,...
Site Manager
Edit Navbar
List all pages
Recent changes
To-do list
The API reference describes in detail the different components of RPyC and the APIs they exposed. Note that this reference describes both the public (stable) API and the internal API, which is...
RPyC is approaching the release of 3.1.0 (I don't have a date set yet, but it should be released by September). I'm writing about it because it's no longer a maintenance release, and it does break...
Capabilities through references
Capabilities through callbacks
See also part 1 of the tutorial.
Server
Start the classic server:
rpyc/servers$ ./classic_server.py
Client
import rpyc
c = rpyc.classic.connect("hostname")
Hardware and Tunneling
#...
RPyC's classic mode was the (only) mode of operation in older versions of RPyC (1.00 through 2.60). If you have use previous versions of RPyC, you'll be familiar with the classic mode: the server...
MOTD
Welcome to the community page. Pages in this category (community:%s) are editable by all visitors.
Registered wikidot users can create pages, and site members can perform full...
Protocol
The Connection class implements the RPyC protocol itself.
The constructor of Connection takes the following parameters:
service - the service class which this side of the connection...
Download
Download the latest stable release from the project's sourceforge page that suites for your platform.
SVN
Tagged releases can be found here.
Development versions (unstable) can be found...
Downloads
Timeline
It has been almost six months1 since RPyC 3 was first released, and I decided to analyze the download statistics from sourceforge. I expected each new release to replace the previous ones (e.g.,...
Sources at http://sebulbasvn.googlecode.com/svn/trunk/rpyc/demos/filemon/
The file-monitor example demonstrates using RPyC-based events to be notified of changes to a remote file system. The...
Hi all, I'm going abroad for a couple of months, so work on RPyC maintenance releases and new features is postponed. Please use the mailing list for questions and bug reports, but bear in mind I...
tbd
multithreading
protocol is symmetric, be aware of the consequences
foldunfold
Table of Contents
Redirecting Standard Input/Output
Debugging
Tunneling
Monkey-Patching
This page contains a collection of useful concepts and examples for developing with...
I had to shorten my trip on account of health issues, so I'm back earlier than expected. I'm getting better, no need to worry :)
Comments
Version 3.00 and later
Starting with version 3.00, RPyC finally has real installers, and has several distribution formats:
Windows - A binary installer for Windows
Python Eggs (all platforms) -...
The IO layer makes the bottom of the RPyC stack. It deals with passing the data "on the wire".
Stream
Streams are an abstraction over files, sockets and pipes. The main difference is that streams...
We sit on freenode, at #rpyc. Here's a web-based IRC client for you:
You can now become a member of this site!
Versions 3.00 and later
Released under the following MIT license:
Copyright (c) 2005-2009
Tomer Filiba (tomerfiliba@gmail.com)
Permission is hereby granted, free of charge, to any person...
The new logo
Based on the new python logo, with permission.
Older logos
Based on the older python logo (the one used on Windows)
Go directly to the google-group
RSS
As I said before, I've dropped the tlslite integration in favor of a custom security layer, as python now has decent SSL support. The main reason is that the only hassle-free way to use tlslite is...
General Ideas
RPySync / RPyDeploy - an rsync-like tool that is able to efficiently deploy python packages over a cluster and satisfy their dependencies
RPyC-over-SSH - utilize ssh as a security...
foldunfold
Table of Contents
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.02
3.01
3.00
Known Issues
3.00 RC2
Known Issues
3.0.7
Moving to git as source control
Build script: more egg formats; register in...
Sources at http://sebulbasvn.googlecode.com/svn/trunk/rpyc/demos/chat/
RPyChat is a proof-of-concept for a chat client and server. RPyChat is meant to show how everything can be thought of as...
RPyC now has screencasts on showmedo!
Click on the video to start the embedded player, or click on the link below to watch the video on the original site.
Part One - Introduction to RPyC
Basic...
Part 1
<SCRIPT SRC="http://showmedo.com/static/javascript/swfobject.js" TYPE="text/javascript"></SCRIPT>
<P ID="player"><A...
TLSLite
RPyC comes with an integration for tlslite
SSH Tunneling
Setting an ssh tunnel is quite simple.
foldunfold
Table of Contents
Security Model
Protocol
Services
Capabilities
Configuration
Authenticators
Classic Mode
Security Model
Older versions of RPyC (1.00 through 2.60) were not designed...
Serialization is the process in which complex objects are converted to simple data that can be used to reconstruct the original object. There are two forms of serialization used in RPyC: by value...
Servers, as the name suggests, expose services. Since RPyC is symmetric, meaning both the client and the server are essentially servers, the only distinction between the two is which is the...
Introduction to Services
Services expose a set of capabilities to the other party. Services need not be symmetric between the two sides; each side may expose a different service. Services are...
Page tags
edit this panel
Members:
Moderators
Admins
Here are some select complements that RPyC has received over the years:
"What a great product. Makes MPI look like a dinosaur."
"I thought Tomer Filiba's talk on RPyC was amazing, I can think of...
This is a short outline of the "Theory of Operation" of RPyC. It will introduce the main concepts and terminologies that you will require so as to understand the library's internals.
Theory
The...
This is old news for those who are reading the mailing list (this thread), but I thought I should tell the rest of you too, in case you run into it: there seems to be a bug with python's locks on...
Sources at http://sebulbasvn.googlecode.com/svn/trunk/rpyc/demos/time/
The time service is a very basic example of RPyC services: it allows clients to query the server for the current...
Site
more pics
screencast 2
screencast 3
guidelines
use cases
capabilities
secure-transport
Tests:
NamedPipeServer
Experimental
migration
copy-on-demand large strings
Home
Intro
Tutorial
Screencasts
Theory of Operation
Use cases
Testimonials
About RPyC
Demos
Classic mode
Time server
File monitor
Basic chat
Web8
Docs
API reference
Guidelines
How...
Using the Tutorial
This tutorial is intended to introduce you to RPyC programming, concepts and terminology. It assumes knowledge of the python programming as well as understanding of operating...
Classic mode
We'll kick-start the tutorial with what is known as classic-style RPyC, i.e., the methodology of RPyC 2.60. Since RPyC 3 is a complete redesign, there are some minor changes, but if...
foldunfold
Table of Contents
Code samples
Setup
Basic usage
Introspection
Exceptions
Misc
Code samples
In this part, we'll dive deeper into the classic mode by analyzing code...
Services
So far we have covered the features of classic RPyC. However, the new model of RPyC programming (starting with RPyC 3.00), is based on services. As you might have noticed in the classic...
Callbacks
Before we dive into asynchronous invocation, we have to cover once last topic: callbacks. Passing a "callback function" means treating functions (or any callable objects in our case) as...
Asynchronism
The last part of the tutorial deals with a more "advanced" issue of RPC programming, asynchronous operation, which is a key feature of RPyC. The code you've seen so far was synchronous...
All blog entries…
Welcome
RPyC (IPA:/ɑɹ paɪ siː/, pronounced like are-pie-see), or Remote Python Call, is a transparent and symmetrical python library for remote procedure calls,...
foldunfold
Table of Contents
Remote ("Web") Services
Administration and Central Control
Hardware Resources
Parallel Execution
Distributed Computation Platform
Testing
This page lists some tasks...
Utils
Factories
connect_channel(channel, service = VoidService, config = {}) - creates an RPyC connection, exposing the given service with the given config, from a channel...
Sources at http://sebulbasvn.googlecode.com/svn/trunk/rpyc/demos/web8/
Web8 is a prototype of a concept I came up with, to demonstrate what the "web" ought to become. Since the terms "web2" and...







