2 | | ``FIXME:'' Put stuff here. |
| 2 | = Extension Development = |
| 3 | |
| 4 | 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. |
| 5 | |
| 6 | * The [/trac/tahoe/browser/docs/webapi.txt webapi.txt] document shows how to control a Tahoe node programmatically. |
| 7 | |
| 8 | == Known Extensions == |
| 9 | |
| 10 | None known yet... |
| 11 | |
| 12 | == Extension Implementation Issues == |
| 13 | |
| 14 | === HTTP methods === |
| 15 | |
| 16 | The api relies on four HTTP methods defined as per the standard {{{GET, POST, PUT, and DELETE}}}, which map intuitively to storage operations. |
| 17 | |
| 18 | Although these are standard HTTP methods, some clients do not offer good support for them. |
| 19 | * The following clients are known to support all methods: |
| 20 | * [http://curl.haxx.se/ curl] is an open source client which supports arbitrary methods with the '-X' option. |
| 21 | * The following clients do not seem to support either {{{PUT}}} and {{{DELETE}}}: |
| 22 | * Python 2.5's urllib module. (Not verified.) |
| 23 | * We have not yet determined if the following have support for arbitrary methods: |
| 24 | * Common web browsers. |
| 25 | * Python 2.5's httplib. |
| 26 | |