The Tahoe-LAFS decentralized secure filesystem.
Go to file
robk-tahoe 4bc57f19c9 fuse/blackmatch: split into client/server (twisted server)
This implements a client/server split for blackmatch, where the client 
implements the fuse_main bindings and a simple blocking rpc client mechanism.
The server implements the other half of that rpc mechanism, and contains all
the actual logic for interpreting fuse requests in the context of the on disk
cache and requests to the tahoe node.  The server is based on a twisted reactor.

The rpc mechanism implements a simple method dispatch including marshalling,
using json, of basic inert data types, in a flat namespace (no objects).
The client side is written in a blocking idiom, to interface with the threading
model used by the fuse_main bindings, whereas the server side is written for a
twisted reactor-based environment, intended to facilitate implementing more 
sophisticated logic in that paradigm.  The two communicate over a unix domain
socket, allocated within the nodedir.

Command line usage is unchanged; the server is launched automatically by the
client. The server daemonizes itself, to avoid preventing the original parent
process (e.g. 'runtests') from waiting upon the server exiting.

The client keeps open a 'keepalive' connection to the server; upon loss thereof
the server will exit. This addresses the fact that the python-fuse bindings 
provide no notification of exit of the client process upon unmount.

The client thus provides a relatively thin 'shim' proxying requests from the
fuse_main bindings across the rpc to the server process, which handles the 
logic behind each request.  

For the time being, a '--no-split' option is provided to surpress the splitting
into client/server, yielding the prior behaviour.  Once the server logic gets
more complex and more entrenched in a twisted idiom, this might be removed.
The 'runtests' test harness currently tests both modes, as 'impl_c' and 
'impl_c_no_split'
2008-10-16 08:08:46 -07:00
bin bin/tahoe: reflow error messages 2008-09-11 18:02:25 -07:00
contrib fuse/blackmatch: split into client/server (twisted server) 2008-10-16 08:08:46 -07:00
docs web: change t=manifest to return a list of (path,read/writecap) tuples, instead of a list of verifycaps. Add output=html,text,json. 2008-10-06 21:36:18 -07:00
mac fuse/impl_c: move mac tahoefuse impl out into contrib/fuse 2008-09-24 18:42:14 -07:00
misc misc/incident-gatherer: add classify_tahoe.py: a foolscap incident-gatherer classification plugin 2008-10-15 15:09:40 -07:00
src/allmydata gui/macapp: slew of code cleanup; unmount filesystems on quit 2008-09-25 16:32:35 -07:00
twisted/plugins change #!/usr/bin/python to #!/usr/bin/env python 2007-03-29 14:01:28 -07:00
windows windows/Makefile: fix dependencies: windows-installer must cause windows-exe to run 2008-09-11 22:21:51 -07:00
_auto_deps.py use foolscap's new app_versions API, require foolscap-0.3.1 2008-09-20 11:38:53 -07:00
.darcs-boringfile .darcs-boringfile ignore tahoe-deps and tahoe-deps.tar.gz 2008-09-17 12:59:38 -07:00
COPYING.GPL new licences, move details from README to doc/install-details.html 2008-01-04 12:27:42 -07:00
COPYING.TGPPL.html more introductory doc cleanup 2008-01-04 18:09:19 -07:00
CREDITS CREDITS: thanks to Chris Galvan 2008-08-27 11:39:50 -07:00
ez_setup.py setup: require setuptools >= v0.6c8 2008-03-26 12:13:02 -07:00
Makefile fuse/impl_c: move mac tahoefuse impl out into contrib/fuse 2008-09-24 18:42:14 -07:00
NEWS NEWS: finish editing for the upcoming 1.3.0 release 2008-09-19 12:30:53 -07:00
README setup: update README to point to known_issues.txt 2008-07-21 18:02:29 -07:00
relnotes.txt relnotes.txt: update and edit for the 1.2.0 release! 2008-07-21 18:04:03 -07:00
setup.cfg Makefile,docs: tahoe-deps.tar.gz now lives in separate source/deps/ directory on http://allmydata.org 2008-09-17 13:44:52 -07:00
setup.py setup: fix site-dirs to find system installed twisted on mac. 2008-09-24 10:42:55 -07:00
Tahoe.home rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00

Welcome to the Tahoe project [1], a secure, decentralized,
fault-tolerant filesystem.  All of the source code is available under
a Free Software, Open Source licence (or two).

Please see docs/about.html for an introduction, docs/install.html for
install instructions, docs/running.html for usage instructions.

Finally, see docs/known_issues.txt for things that you need to know
about if you are relying on Tahoe to store your valuable data.

[1] http://allmydata.org