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.