The libinput library was largely born out of Wayland's needs and the idea of having multiple compositors around but trying to avoid the work of having to write separate input implementations for each compositor -- with libinput, all of the input handling work can be shared. The code in large part is based on earlier Weston code for aiming at a common input library. This input library handles device detection, device handling, input device processing, and abstraction.
With this initial libinput 0.1 release there is yet to be a guarantee of API or ABI stability, but unofficially the developers believe most of the major work has settled down. More details on the libinput 0.1 release can be found from the wayland-devel announcement.