{"repo":"oliyh/superlifter","free":true,"listed":false,"github":"https://github.com/oliyh/superlifter","clone":"git clone https://github.com/oliyh/superlifter.git","description":"A DataLoader for Clojure/script","language":"Clojure","stars":183,"topics":["clojure","clojurescript","dataloader","fetch","graphql","lacinia","urania"],"license":"EPL-1.0","category":"api-integrations-sdks","readme_excerpt":"superlifter Superlifter is an implementation of DataLoader for Clojure. To quote from the DataLoader readme: DataLoader allows you to decouple unrelated parts of your application without sacrificing the performance of batch data-loading. While the loader presents an API that loads individual values, all concurrent requests will be coalesced and presented to your batch loading function. This allows your application to safely distribute data fetching requirements throughout your application and maintain minimal outgoing data requests. Superlifter uses Urania, a remote data access library for Clojure/script inspired by Haxl which in turn inspired DataLoader. Urania allows batching of similar fetches and deduplication via caching of identical fetches. Superlifter adds smooth integration with libraries like lacinia, where GraphQL resolvers are run independently and must return data (or promises of data), leading to 1+n problems which can otherwise only be resolved by prefetching which complicates code. The aim of superlifter is to provide a way of combining fetches delineated by time buckets, thresholds or explicit trigger rather than by node resolution. As the underlying fetches are performed by Urania, knowledge of this library is required (it's very simple, though!). Superlifter provides the following features: - Fast, simple implementation of DataLoader pattern - Bucketing by time or by queue size - Asynchronous fetching - Batching of fetches - Shared cache for all fetches in ","default_branch":null,"files":null,"tree":[],"storefront":"/r/oliyh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/oliyh/superlifter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}