[Development] qmlbundle vs Qt Resource System

Koehne Kai Kai.Koehne at digia.com
Thu Aug 8 09:25:25 CEST 2013


I'm right now having a second look at the QML deployment story, specifically at qmlbundle ... and frankly speaking I'm not sure how it compares to the Qt Resource System (.qrc/rcc). qmlbundle is something that was added in Qt 5.0 already, but since the two developers working on it have moved on there's little information about it, except for the original commit https://codereview.qt-project.org/#change,23842 .

That's what I found out so far:
- both rcc and qmlbundle can be used to bundle resource files (.qml, .js, images ...)
- qrc resources can be stored in separate files (.rcc), or embedded into the executable. Qmlbundle files are always separate files (.bundle).
- rcc can optionally compress the content (on by default). 
- qrc/rcc is neatly integrated into qmake/cmake/qbs for the embedded case. There's no direct support for qmlbundle in any build system (yet).
- rcc always processes a .qrc file, while qmlbundle individually add / remove /update files to a bundle by passing them on the command line.
- qmlbundle has 'metalinks' that you can use e.g. store stripped / processed versions of individual files.
- Rcc has file aliases and location language selectors.
- qmlbundle is tightly integrated into QtDeclarative, e.g. a 'qmldir' file can actually be a bundle .

Does anyone know more about the design goals for qmlbundle, specifically why it wasn't built on top of .qrc/rcc? Are there plans (yet) on how to move on with it?



   Kai Köhne, Senior Software Engineer - Digia, Qt
   Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
   Geschäftsführer: Mika Pälsi, Juha Varelius, Anja Wasenius
   Sitz der Gesellschaft: Berlin. USt-IdNr: DE 286 306 868
   Registergericht: Amtsgericht Charlottenburg, HRB 144331 B

More information about the Development mailing list