<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1 +1,39 @@
-README
\ No newline at end of file
+= AIRBRUSH
+
+== DESCRIPTION
+
+Airbrush is a distributed processing host for performing arbitrary tasks on a particular server.
+Currently it supports using MemCache as the transport queue to communicate between an airbrush
+server issuing a command and the server processing it.
+
+Due to the distributed nature of MemCache, multiple Airbrush servers can be started across
+many hosts, and each will monitor the MemCache incoming queue for results independently and
+atomically.
+
+Remote jobs are performed via a 'processor' installed as part of Airbrush, and is currently
+configured in code in the server.rb source file (look for the handler definition/configuration). A
+future enhancemnt could support automatic processor registration and/or a plugin architecture.
+
+Actual communication between client and server via MemCache is done via a hash, that includes
+a :command value, optional :args value and a uniqie :id value. The :id value is used to uniquely
+identify this job, :command names the actual command to run on the remote server, and :params
+is a hash of parameters that are passed to the command being executed.
+
+Several conventions are used, the name of the command needs to match a method name on the
+processor. The key names in the params hash need to match parameter names to the method being
+invoked (and will be automatically assigned). The :id value is used to name a queue that the
+client can poll for return values from the remote command, if required.
+
+== USAGE
+
+To use Airbrush, you will need a starling server installed and running:
+
+    $&gt; starling -v -P /tmp/starling.pid -q /tmp/queue
+
+and at least one Airbrush instance running, including your processor:
+
+    $&gt; airbrush -v
+
+To send a remote job to the Airbrush server, use the Airbrush::Client module located
+in airbrush/client.rb. An example is airbrush-example-client, which sends an image to the
+remote server to be turned into a set of previews.</diff>
      <filename>README.txt</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>24d0bf5102352c888ed1fb863fc471fa23a92d13</id>
    </parent>
  </parents>
  <author>
    <name>Marcus Crafter</name>
    <email>crafterm@redartisan.com</email>
  </author>
  <url>http://github.com/square-circle-triangle/airbrush/commit/de5c0cfc525b8aa84bc09242bf616e67a8c870c0</url>
  <id>de5c0cfc525b8aa84bc09242bf616e67a8c870c0</id>
  <committed-date>2008-07-03T23:03:56-07:00</committed-date>
  <authored-date>2008-07-03T23:03:56-07:00</authored-date>
  <message>Update README.txt to include airbrush essentials and remove warnings from hoe/newgem about its formatting


git-svn-id: svn://svn.sct.com.au/image_server/trunk@100 daa9635f-4444-0410-9b3d-b8c75a019348</message>
  <tree>18f82db24031e6c7e61050fd3e200474acf30b81</tree>
  <committer>
    <name>Marcus Crafter</name>
    <email>crafterm@redartisan.com</email>
  </committer>
</commit>
