Sputnik is organized as a collection of "rocks" - bundles of Lua code installable via LuaRocks. Sputnik uses three types of rocks:
- Third party (someone else built them, we use them)
- General-purpose rocks that we built
- Sputnik and its' plugins (we build them, and they are Sputnik-specific), those all start with "sputnik", e.g., "sputnik-tickets".
Note that some of those are rocks in the making and are not actually available in any luarocks repository.
Core Sputnik Rocks
Sputnik's rocks used for the basic setup.
- sputnik - the main rock, which provides all the "business logic"
- This is what you install with luarocks:
luarocks install sputnik. All other rocks will get pulled automatically.
- This is what you install with luarocks:
- versium - provides storage
- This will soon be split into two rocks: "versium" for the low-level storage and "saci" for the higher level object-to-string mapping.
- colors - color calculation
- A simple module that we use for calculating color schemes
- xssfilter - (not available yet) a package for ensuring that HTML is safe against cross-site scripting.
External Rocks for Basic Installation
Required by "sputnik"
- markdown - a module for converting text to HTML
- md5 - a crypto library we use to do MD5 sums
- cosmo - a template library
- Cosmo was born as a part of Sputnik but is now maintained separately by Fábio Mascarenhas. We treat it as an external module now.
Required by "versium"
- luafilesystem - a file system library
- cosmo - see above
Optional Rocks and Their Dependencies
Storage Modules for Versium
- sputnik-svn - a connector to an Subversion backend
- requires "luasvn" rock (external)
- sputnik-mysql - a connector to an MySQL database backend
- requires "luasql" rock (external)
Markup Modules
- sputnik-pod - a plugin to use POD instead of Markdown
- requires "pod" (external)
- sputnik-medialike - a plugin to use a Wikipedia-like markup instead of Markdown
- requires "medialike" which is now hosted with us but will probably become external
Etc.
- sputnik-search - a plugin to support search via Google API
- sputnik-tickets - a plugin for bug tracking - see Tickets
Demos
- sputnik-album - a plugin for making Sputnik work like an album
- sputnik-mbox - a plugin for using Sputnik to display mailing list archives
- sputnik-worldclock - a plugin to show a live world clock