Krang VS Bricolage Comparison

This document compares Krang to Bricolage, the system Krang was based on. The version of Bricolage examined is 1.4.6, which was the stable version for most of Krang's development. Later versions of Bricolage may be included in this chart as time permits.


Krang was designed as a replacement for our usage of Bricolage. During the design of Krang, features not found in Bricolage were added and some Bricolage features were removed. This table provides a summary of the most important of these changes, as well as some examples of things that stayed the same in Krang.

Feature Krang
Scheduled Republishing Yes No
Schedule Publish by Version Yes No
Publish from Anywhere in UI Yes No
Configurable Story Workflow Yes Yes
Multiple Story Workflows No Yes
Publishing via FTP No Yes
Publishing via SCP No Yes
Upload Media during Story Edit Yes No
FTP Interface for Media Yes No
Media Archive Upload Yes No
Thumbnails Yes No
Media Workflow No Yes
Media Keywords No Yes
Add Contributor during Asset Edit Yes No
Contributor Photos Yes No
Customized Contributor Type Fields No Yes
Template Testing Facility Yes No
HTML::Template Support Yes Yes
HTML::Mason Support No Yes
Template Workflow No Yes
Element Classes
Centralized Element Class Library Yes No
Extensible Element Class System Yes No
Categories Have Elements Yes No
Elements May Be Indexed Yes No
Media Objects Have Elements No Yes
Element Classes Editable by Non-Programmers No Yes
XML Import/Export for Assets Yes Yes
XML Import/Export for All Objects Yes No
Runtime XML Schema Validation Yes No
SOAP Interface No Yes
User Interface
All Lists Support Paging Yes No
All Lists Include Check-all Controls Yes No
Hierarchical Category Picker Yes No
Leaving an Editor Without Saving Warns Yes No
Skins Yes No
Configurable User Groups Yes Yes
Supports Hiding Assets Yes No
Supports Hiding Applications Yes No
Configurable Object Groups No Yes
Delete Really Deletes from DB Yes No
MySQL Support Yes No
PostgreSQL Support No Yes
Multiple Instances in One Apache Process Yes No
SSL Support No Yes
Support for Netscape/6+, Mozilla/1+, MSIE/5+ (Windows) Yes Yes
Support for Safari 1+ Yes No
Support for Netscape/4.x, IE/4.x, MSIE/5+ (Macintosh) No Yes
Integrated Multi-Site Publishing Yes No
User Preferences Yes No
Complete Automated Test Suite Yes No
Add-on System Yes No
Email Alerts Yes Yes
Jabber Alerts No Yes
Output Channels No Yes
Unicode Support No Yes
Timezone Support No Yes


Krang was designed to replace our usage of Bricolage with as simple a code base as possible. While measuring complexity isn't a science, certain pieces of data express the relative simplicity of Krang:

Metric Krang
Perl Modules 93 157
Perl Module Lines 43,261 112,201
Perl Module SLOC 20,442 25,478
HTML::Template Templates /
HTML::Mason Components
62 130
HTML::Template Template Lines /
HTML::Mason Component Lines
7,231 15,146
Database Tables 36 145


The following table compares a few common operations on Bricolage and Krang systems with approximately 7,000 stories, running on identical machines (Redhat Linux 7.3, dual P4-2GHz, 4GB of RAM, with databases tuned appropriately). For a more comprehensive look at Krang's performance under load see this document.

Since Krang is not 100% compatible with Bricolage, this is somewhat of an apples-to-oranges comparison. Caveat lector.

Operation Krang
Single Story Publish 0.33 seconds 4 seconds
Total Site Publish 38 minutes 6.5 hours
Story Find by Title 0.15 seconds 2 seconds