.. _pages/setup_a_low-level_library#setup_a_low-level_library: Setting up a low-level library ******************************* A low-level library is interesting for all those who like to use the :doc:`low-level APIs ` of qooxdoo. Such a library consists of a pre-build javascript file that contains only the low-level classes of qooxdoo. For instance, no GUI toolkit (widgets, layouts, theming) is included. .. _pages/setup_a_low-level_library#create_a_low-level_skeleton: Create a low-level skeleton =========================== To create your low-level application skeleton you can let do the tool-chain the heavy lifting and use the ``create-application.py`` script to generate the skeleton. :: $QOOXDOO_PATH/tool/bin/create-application.py -n appName -t bom -o $OUTPUT-DIR The ``t`` parameter is the important one to define the application as a ``bom`` type application. To show all available options of this mighty script just type :: $QOOXDOO_PATH/tool/bin/create-application.py ? .. _pages/setup_a_low-level_library#generate_qooxdoo_build: Generate qooxdoo build ====================== Looking at the output of your generated low-level library skeleton you first realize that no ``source`` folder exists. The simple reason for this is, that you can easily use the low-level APIs without creating your own application classes. Instead you add your logic directly into the given ``index.html`` or in whatever HTML file you like to. Before you can descend to the low-levels you have to generate a javascript file containing the qooxdoo low-level classes. :: ./generate.py build This pre-defined job is all you have to execute to start right away. .. note:: The generated build script is a compilation of low-level classes, but it does **not** provide all classes of the *qx.bom* or *qx.dom* namespace. Please take a look at the provide *config.json* file to determine which file is included. The low-level wrapper of the XmlHttpRequest object ( *qx.bom.Request* ) is **not** provided by default. .. _pages/setup_a_low-level_library#ready_to_code: Ready to code ============= As already mentioned implementing your logic is a no-brainer. Just grab the existing ``index.html`` file and start right away. .. code-block:: html