Midgard 12.09 Gjallarhorn
The new stable series of the Midgard2 Content Repository library was released recently. This version builds on the long-term supported Ratatoskr series, adding some new features:
- Asynchronous I/O operations with the content repository
- Easier migration from the Midgard1 series
Asynchronous I/O is important when the content repository is used in persistent applications like desktop software or Node.js, where Midgard can be used via node-gir (see examples). You can read more about async operations in the documentation.
Why a content repository?
From the release notes:
Midgard2 is a library which provides content storage and retrieval services to applications. It is essentially a higher-level access layer to relational databases and file systems.
Parallels can be drawn between Midgard2 and various Object Relational Mapping (ORM) libraries. The content repository concept however takes these ideas much further, with concepts like:
- Object-oriented data and query access
- Tree structure for content
- Standardized metadata available to all content
- Workspaces for managing branching and merging of content
- Content type definitions with introspection capabilities
- File attachments for content objects
- Signals about I/O operations
- Users and access control
On desktop and mobile
Midgard2 is available through GObject Introspection, making it accessible from a wide range of programming languages, from Python and JavaScript to C and C#.
Simply install the Midgard2 library and the GObject Introspection binding for the language you want to work with.
With PHP
There are two ways to use the Midgard2 content repository with PHP:
- Using the Midgard2 PHP extension directly
- Via the standard PHPCR interfaces
For those looking for a CMS running on Midgard2, both MidCOM and Symfony CMF work with it out-of-the-box.
Getting Midgard2
It will take some time before the new release trickles down to distributions like Debian and Ubuntu. In the meanwhile, source tarballs are available.
If you have any issues getting started, feel free to contact us on the mailing list or on IRC.
Gjallarhorn of the Viking mythology is the horn that sounds marking Ragnaroek. With our release it signifies the callback pattern of asynchronous I/O, and the time for Midgard1 users to migrate over. The picture is public domain from Wikimedia Commons.