libIDL