Open Library
The openlibrary ECMAScript package preserves work/book keys, Unicode titles,
authors, canonical Open Library links and first-publication years. It requests
only those search fields and ten records per page. The documented offset/limit
pagination is exposed through Provider API v1; tokens contain validated numeric
offsets, never arbitrary remote URLs. It does not claim full book content.
The official Search API documents work/edition keys, selected fields, Unicode queries and pagination. The usage guidelines prioritize human book lookup, request caching and application identification; default unidentified traffic is limited to one request per second. KLookup sends a descriptive User-Agent with its project URL, uses application-wide one-request-per-second origin scheduling without claiming the higher identified/email quota, keeps a small per-instance one-minute query/page cache and honors HTTP 429 Retry-After. Spacing and cooldown live in the shared HTTP host, survive tab/host destruction and package reloads, and use monotonic time. A fresh tab cannot bypass them. Queued requests retain their normal deadline and can be cancelled without starting HTTP. Requests during a shared cooldown fail with an explicit retry message; they are not retried automatically. There is no background harvest, bulk synchronization, scraping or automatic retry loop. Attribution identifies Open Library / Internet Archive.
Only https://openlibrary.org is permitted. No credentials are requested.
Malformed JSON, API/transport errors and wrong shapes fail clearly; incomplete
rows retain available metadata while invalid keys/titles are skipped. Synthetic
fixtures and selfTest cover production mapping and Unicode. Provider tests
exercise offset pagination, request encoding, caching, rate limiting,
cancellation, MainWindow/SearchTab activation and staged installation.
The former native sources/target are removed; stale native openlibrary modules
are ignored while normal C++ plugin support remains. Package managers should
remove their own obsolete files on upgrade. Saved enablement retains the stable
ID, and the shared Settings page controls approval and revocation.