aboutsummaryrefslogtreecommitdiffstats
path: root/docs/softwarestack.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/softwarestack.rst')
-rw-r--r--docs/softwarestack.rst127
1 files changed, 127 insertions, 0 deletions
diff --git a/docs/softwarestack.rst b/docs/softwarestack.rst
new file mode 100644
index 00000000..024f0d5d
--- /dev/null
+++ b/docs/softwarestack.rst
@@ -0,0 +1,127 @@
+=======
+ Stack
+=======
+
+The software stack for this project might change over time, but this
+is what we're thinking right now.
+
+There's some explanation of design decisions in the
+:ref:`design-decisions-chapter`.
+
+
+Python
+======
+
+* http://python.org/
+
+The core team does a lot of work in Python and it's the language we're
+most likely to do a project like this in.
+
+
+MongoDB
+=======
+
+* http://www.mongodb.org/
+
+A "document database". Because it's extremely flexible and scales up
+well, but I guess not down well.
+
+
+MongoKit
+========
+
+* http://namlook.github.com/mongokit/
+
+A lightweight ORM for mongodb. Helps us define our structures better,
+does schema validation, schema evolution, and helps make things more
+fun and pythonic.
+
+
+Jinja2
+======
+
+* http://jinja.pocoo.org/docs/
+
+For templating. Pretty much django templates++ but allows us to pass
+arguments into method calls instead of writing custom tags.
+
+
+WTForms
+=======
+
+* http://wtforms.simplecodes.com/
+
+For form handling, validation, abstraction. Almost just like Django's
+templates.
+
+
+WebOb
+=====
+
+* http://pythonpaste.org/webob/
+
+Gives nice request/response objects (also somewhat Django-ish).
+
+
+Paste Deploy and Paste Script
+=============================
+
+* http://pythonpaste.org/deploy/
+* http://pythonpaste.org/script/
+
+This will be the default way of configuring and launching the
+application. Since GNU MediaGoblin will be fairly WSGI minimalist though,
+you can probably use other ways to launch it, though this will be the
+default.
+
+
+Routes
+======
+
+* http://routes.groovie.org/
+
+For URL Routing. It works well enough.
+
+
+JQuery
+======
+
+* http://jquery.com/
+
+For all sorts of things on the JavaScript end of things, for all sorts
+of reasons.
+
+
+Beaker
+======
+
+* http://beaker.groovie.org/
+
+For sessions, because that seems like it's generally considered the
+way to go I guess.
+
+
+Nose
+====
+
+* http://somethingaboutorange.com/mrl/projects/nose/1.0.0/
+
+For unit tests because it makes testing a bit nicer.
+
+
+Celery
+======
+
+* http://celeryproject.org/
+
+For task queueing (resizing images, encoding video, ...).
+
+
+RabbitMQ
+========
+
+* http://www.rabbitmq.com/
+
+For sending tasks to celery, because I guess that's what most people
+do. Might be optional, might also let people use MongoDB for this if
+they want.