Changes between Version 1 and Version 2 of WikiStart


Ignore:
Timestamp:
07/13/2007 11:48:46 AM (17 years ago)
Author:
Brian Warner
Comment:

replace front page with a copy from http://twistedmatrix.com/trac/wiki/FoolsCap

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v1 v2  
    1 = Welcome to Trac 0.10.3 =
    21
    3 Trac is a '''minimalistic''' approach to '''web-based''' management of
    4 '''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress.
     2= Foolscap =
    53
    6 All aspects of Trac have been designed with the single goal to
    7 '''help developers write great software''' while '''staying out of the way'''
    8 and imposing as little as possible on a team's established process and
    9 culture.
     4"Foolscap" is the name for the next-generation RPC protocol, intended to replace Perspective Broker. It has been under development (on and off) by Brian Warner for several years.
    105
    11 As all Wiki pages, this page is editable, this means that you can
    12 modify the contents of this page simply by using your
    13 web-browser. Simply click on the "Edit this page" link at the bottom
    14 of the page. WikiFormatting will give you a detailed description of
    15 available Wiki formatting commands.
     6The current release is [http://twistedmatrix.com/~warner/Foolscap/foolscap-0.1.4.tar.gz foolscap-0.1.4] .
    167
    17 "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created
    18 a new Trac environment, containing a default set of wiki pages and some sample
    19 data. This newly created environment also contains
    20 [wiki:TracGuide documentation] to help you get started with your project.
     8The two primary responsibilities of an RPC protocol are to:
    219
    22 You can use [wiki:TracAdmin trac-admin] to configure
    23 [http://trac.edgewall.org/ Trac] to better fit your project, especially in
    24 regard to ''components'', ''versions'' and ''milestones''.
     10 1. serialize an object graph, and reconstruct a useful equivalent on the remote side
     11 1. allow the holder of a !RemoteReference in one process to invoke methods on a Referenceable in a different one
     12
     13In addition, there are details like object naming, connection establishment, controlling object serialization, reference lifetime, and error reporting.
     14
     15== New features ==
     16(relative to oldpb, aka twisted.spread)
     17
     18 * most inert Python types are serializable, including unicode and sets
     19 * clients and servers are implemented as [http://twistedmatrix.com/documents/current/api/twisted.application.service.html Services], which share connections when possible and are easy to shut down
     20 * links are encrypted/authenticated by default (using SSL)
     21 * all objects are accessed through secure/unguessable "FURLs"
     22  * explicitly published objects can be accessed through well-known FURLs
     23 * you can declare method signatures (with "constraints", either in Interface classes or as method attribute/decorators)
     24  * this enables defenses against resource-consumption DoS attacks, including stack-frame-exhaustion attacks
     25  * (TODO) you can ask the deserializer about your current maximum memory/stackframe exposure, based upon what objects are visible and what methods they declare
     26 * serializers for third-party classes can be registered using Adapters
     27 * serializers are more "streaming" than in oldpb
     28  * serializers can pause themselves, deferring serialization until later
     29  * serializers can be paused when the network pipe is full
     30 * newpb is architected to make it possible to rewrite serializers/deserializers in C, for speed
     31 * object graph depth is limited by available heap memory, not available stack depth
     32
     33== Show Me The Code ==
     34
     35The current release is available in my [http://twistedmatrix.com/~warner/Foolscap/ home directory], in the file [http://twistedmatrix.com/~warner/Foolscap/foolscap-0.1.4.tar.gz]. This is an alpha release, since the protocol has not been finalized, and incompatible changes are being made every few months.
     36
     37The latest Foolscap code lives in a mercurial repository, at http://foolscap.lothar.com/. The documentation is the doc/ directory and includes both the protocol specification and a short user's manual. Some day, it will probably be shipped as part of the "Twisted-Core" distribution, but only after the protocol and code have stabilized a bit.
     38
     39== Status ==
     40
     41Foolscap is not yet ready for production use. The 'todo' and 'newpb-jobs.txt' files contain some of the things that need finishing before it will be ready. Connection negotiation needs to be changed to use variable-length certificate digests and certificate chains and variable-length object names, various questions about making objects "giftable" by default or not need to be answered and implemented, and we need to acquire operational experience with Foolscap as a whole to think about usability.
     42
     43Release 0.1.4 is available in my [http://twistedmatrix.com/~warner/Foolscap/ home directory].
    2544
    2645
    27 TracGuide is a good place to start.
    2846
    29 Enjoy! [[BR]]
    30 ''The Trac Team''
     47== Trac Hints ==
    3148
    32 == Starting Points ==
     49The old Trac starting page was moved to OldWikiStart
    3350
    34  * TracGuide --  Built-in Documentation
    35  * [http://trac.edgewall.org/ The Trac project] -- Trac Open Source Project
    36  * [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions
    37  * TracSupport --  Trac Support
    3851
    3952For a complete list of local wiki pages, see TitleIndex.