-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
119 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,55 @@ | ||
"pb2" | ||
Foolscap | ||
(aka newpb, aka pb2) | ||
|
||
This is a ground-up rewrite of Perspective Broker, which itself is Twisted's | ||
native RPC/RMI protocol (Remote Procedure Call / Remote Method Invocation). | ||
If you have control of both ends of the wire, and are thus not constrained to | ||
use some other protocol like HTTP/XMLRPC/CORBA/etc, consider using PB. | ||
use some other protocol like HTTP/XMLRPC/CORBA/etc, you might consider using | ||
Foolscap. | ||
|
||
Fundamentally, PB allows you to make a python object in one process available | ||
to code in other processes, which means you can invoke its methods remotely. | ||
This includes a data serialization layer to convey the object graphs for the | ||
argument and the eventual response, and an object reference system to keep | ||
track of which objects you are connecting to. It uses a capability-based | ||
security model, such that once you create a non-public object, it is only | ||
accessible to clients to whom you've given the (unguessable) PB-URL. You can | ||
of course publish world-visible objects that have well-known PB-URLs. | ||
Fundamentally, Foolscap allows you to make a python object in one process | ||
available to code in other processes, which means you can invoke its methods | ||
remotely. This includes a data serialization layer to convey the object | ||
graphs for the arguments and the eventual response, and an object reference | ||
system to keep track of which objects you are connecting to. It uses a | ||
capability-based security model, such that once you create a non-public | ||
object, it is only accessible to clients to whom you've given the | ||
(unguessable) PB-URL. You can of course publish world-visible objects that | ||
have well-known PB-URLs. | ||
|
||
Full documentation and examples are in the doc/pb/ directory. | ||
Full documentation and examples are in the doc/ directory. | ||
|
||
|
||
COMPATIBILITY: | ||
|
||
newpb is still under development. The wire protocol is almost certainly | ||
Foolscap is still under development. The wire protocol is almost certainly | ||
going to change in the near future, so forward compatibility between | ||
versions is *NOT* yet guaranteed. Do not use newpb if you do not have | ||
continuing control over both ends of the wire. newpb is not yet suitable for | ||
widespread deployment: for production applications please continue to use | ||
oldpb (in twisted.spread) . newpb has not been used extensively in any | ||
environment and serious bugs may exist. | ||
versions is *NOT* yet guaranteed. Do not use Foolscap if you do not have | ||
continuing control over both ends of the wire. Foolscap is not yet suitable | ||
for widespread deployment: for production applications please continue to | ||
use oldpb (in twisted.spread) . Foolscap has not been used extensively in | ||
any environment and serious bugs may exist. | ||
|
||
NAMING: | ||
|
||
The established version of PB that has been around for years is referred to | ||
here as "oldpb". The new version contained in this release is known as "pb2" | ||
or "newpb". The release tarballs are named "pb2-x.y.z". The python module | ||
name is "twisted.pb" . These names are still in flux. At some point in the | ||
here as "oldpb". The new version contained in this release is known as | ||
"Foolscap", but at various points of its development was known as "newpb" or | ||
"pb2". The release tarballs are named "foolscap-x.y.z". The python module | ||
name is "foolscap" . These names are still in flux. At some point in the | ||
future, we may come up with a suitably clever and confusing name that will | ||
replace any or all of these. | ||
|
||
A "foolscap" is a size of paper, probably measuring 17 by 13.5 inches. A | ||
twisted foolscap of paper makes a good fool's cap. Also, "cap" makes me | ||
think of capabilities, and Foolscap is a protocol to implement a distributed | ||
object-capabilities model in python. | ||
|
||
AUTHOR: | ||
|
||
Brian Warner is responsible for this thing. Please discuss it on the | ||
twisted-python list. | ||
|
||
The wiki page at <http://twistedmatrix.com/trac/wiki/FoolsCap> contains | ||
pointers to the latest release, as well as documentation and other | ||
resources. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters