The libosinfo project comprises three parts
- A database of metadata about operating systems, hypervisors, virtual hardware and more
- A GObject based library API for querying information from the database
- Command line tools for querying & extracting information from the database
The goal of libosinfo is to provide a single place containing all the information about an operating system that is required in order to provision and manage it in a virtualized environment. It allows applications to
- Query what hardware is supportable by an operating system
- Query what hardware is supportable by a hypervisor
- Determine the optimal hardware for running an operating system on a hypervisor
- Find download location of installable ISO images and Live CDs
- Find the location of online installation trees
- Query the minimum/recommended/maximum CPU/memory/disk resources for an operating system
- Automatically identify what operating system an ISO image is for
- Generate scripts suitable for automating JEOS/Desktop installations
The library API is written in C, using the GObject library (provided by the glib2 package). Via the magic of ​GObject Introspection, the API is automatically available in all dynamic programming languages with bindings for GObject (JavaScript, Perl, Python, Ruby). Auto-generated bindings for Vala are also provided
The library and database are licensed under the terms of the GNU LGPL version 2 or later.