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 v1.011 |
Bricolage v1.4.6 |
|---|---|---|
| Stories | ||
| 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 |
| Media | ||
| 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 |
| Contributors | ||
| Add Contributor during Asset Edit | Yes | No |
| Contributor Photos | Yes | No |
| Customized Contributor Type Fields | No | Yes |
| Templates | ||
| 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 | ||
| 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 |
| Permissions | ||
| Configurable User Groups | Yes | Yes |
| Supports Hiding Assets | Yes | No |
| Supports Hiding Applications | Yes | No |
| Configurable Object Groups | No | Yes |
| Database | ||
| Delete Really Deletes from DB | Yes | No |
| MySQL Support | Yes | No |
| PostgreSQL Support | No | Yes |
| Apache | ||
| Multiple Instances in One Apache Process | Yes | No |
| SSL Support | No | Yes |
| Browsers | ||
| 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 |
| General | ||
| 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 v1.011 |
Bricolage v1.4.6 |
|---|---|---|
| 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 v1.011 |
Bricolage v1.4.6 |
|---|---|---|
| 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 |