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...
IRC
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...
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License