Whisper is a lightweight, simple weblaaagh server. Whisper is around 1400 lines of code, requires no database, can serve over 1500 requests per second, and can output HTML, RSS, and text.

Demo: http://all-thing.net
News: http://all-thing.net/label/whisper/

Homepage: masanjin.net/whisper/

Features:

  • No RDBMS. Because storing your blog entries in a RDBMS is like driving to work in the Space Shuttle.

  • YAML+Textile, sitting on a disk. Blog posts and comments are stored on disk in regular files, using a mix of YAML and Textile. This means you can keep your content under version control, and you can edit it with whatever editor you desire.

  • Sits directly on top of Rack (or Thin). No intermediate layer to slow things down. For benchmarks, see all-thing.net/whisper-benchmarks.

  • Lazy cached dependency graph: every bit of content is cached, built lazily, and a part of a big dependency graph. That means almost every request is served directly from memory, and making a change, like adding or updating an entry, forces a regeneration of only those bits that require it. Infrequently-requested bits of content eventually expire.

  • Markup enhancements: Whisper has extra processing on top of Textile to syntax highlight ruby code, and turn LaTeX math expressions are turned into MathML (via RiTeX). Write pretty Ruby code and pretty math without any extra effort.

  • Fully threaded comments. Why would you not have this?

  • Blog post as mailing list. Comments can be made by entering your email address, and replying to the resulting email. You can choose to have future replies emailed to you, and replying to them automatically adds a comment. This allows you to quote, thread, and generally have a reasonable discussion, which is what email is good at, and what typing shit into little text areas on your web browser is not.

  • Multiformat support. In addition to HTML and RSS output, there’s a plain text mode for the hard-core.

  • Pagination, labels, per-label and per-author indices, etc.

Caveats:

Whisper currently only supports comments via email. Textboxes are for the birds.

Usage:

  1. gem install whisperblog

  2. whisper-init <blog directory>

  3. Follow the instructions!

To run whisper in production mode (probably what you want for serving your blog), use –production.