From da11fceff7abcd6e1cb0a50921befdfb5a0613b5 Mon Sep 17 00:00:00 2001 From: nejucomo <> Date: Sun, 14 Oct 2007 05:37:37 +0000 Subject: [PATCH] [Imported from Trac: page Extensions, version 2] --- Extensions.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Extensions.md b/Extensions.md index b138f5e..67462d9 100644 --- a/Extensions.md +++ b/Extensions.md @@ -1,2 +1,26 @@ -``FIXME:'' Put stuff here. +# Extension Development + +Tahoe has a programmatic API which enables building custom applications on top of the storage infrastructure. This ``RESTful'' interface uses HTTP, so extensions can be implemented as separate processes across a network. + + * The [/trac/tahoe/browser/docs/webapi.txt webapi.txt] document shows how to control a Tahoe node programmatically. + +## Known Extensions + +None known yet... + +## Extension Implementation Issues + +### HTTP methods + +The api relies on four HTTP methods defined as per the standard `GET, POST, PUT, and DELETE`, which map intuitively to storage operations. + +Although these are standard HTTP methods, some clients do not offer good support for them. + * The following clients are known to support all methods: + * [curl](http://curl.haxx.se/) is an open source client which supports arbitrary methods with the '-X' option. + * The following clients do not seem to support either `PUT` and `DELETE`: + * Python 2.5's urllib module. (Not verified.) + * We have not yet determined if the following have support for arbitrary methods: + * Common web browsers. + * Python 2.5's httplib. +