1Libweston 2========= 3 4.. toctree:: 5 :maxdepth: 2 6 :caption: Contents: 7 8 libweston/compositor.rst 9 libweston/output-management.rst 10 libweston/log.rst 11 12`Libweston` is an effort to separate the re-usable parts of Weston into a 13library. `Libweston` provides most of the boring and tedious bits of correctly 14implementing core Wayland protocols and interfacing with input and output 15systems, so that people who just want to write a new "Wayland window manager" 16(WM) or a small desktop environment (DE) can focus on the WM part. 17 18Libweston was first introduced in Weston 1.12, and is expected to continue 19evolving through many Weston releases before it achieves a stable API and 20feature completeness. 21 22`Libweston`'s primary purpose is exporting an API for creating Wayland 23compositors. Libweston's secondary purpose is to export the weston_config API 24so that third party plugins and helper programs can read :file:`weston.ini` if 25they want to. However, these two scopes are orthogonal and independent. At no 26point will the compositor functionality use or depend on the weston_config 27functionality. 28 29Further work 30------------ 31 32In current form, `libweston` is an amalgam of various APIs mashed together and 33currently it needs a large clean-up and re-organization and possibly, a split 34into class-specific files. The documentation only provide the public 35API and not the private API used inside `libweston` or other functionality 36required in the core internals of the library. 37 38With that in mind we see the following steps needed to achieve that: 39 40- migrate everything that should not reside in the public API (for instance, 41 the doxygen **\\internal** command is a clear indication that that symbol 42 should not be present in the public API) to private headers. 43- if needed be, create class-specific files, like **input** and **output** 44 which should tackle specific functionality, and allows to write the 45 documentation parts much easier, and provides clarity for `libweston` 46 users when they'd read it. 47