{"repo":"boraseoksoon/Throttler","free":true,"listed":false,"github":"https://github.com/boraseoksoon/Throttler","clone":"git clone https://github.com/boraseoksoon/Throttler.git","description":"One Line to throttle, debounce and delay: Say Goodbye to Reactive Programming such as RxSwift and Combine.","language":"Swift","stars":166,"topics":["swift","ios","swiftui","macos","cocoa","asynchronous-programming","combine","dispatchqueue","throttle","throttle-requests"],"license":"MIT","category":"mobile-apps","readme_excerpt":"Icon credits: Lorc, Delapouite & contributors Throttler Throttler is a small Swift concurrency package for scheduling and measuring work: debounce , throttle , delay , repeat , timeout , time , and retry . It is useful when you want direct closure-based helpers instead of building a reactive pipeline for simple timing behavior. Requirements - Swift 5.9+ - iOS 16.0+ - macOS 13.0+ - watchOS 9.0+ - tvOS 16.0+ Installation In Xcode, add this package URL: Quick Start Identifiers debounce and throttle group calls by identifier . When identifier is omitted, the package derives one from the call site ( fileID:line:column ). Repeated calls from the same source location share one group. Calls from different source locations are separate. Use an explicit identifier when calls from different locations should share one group, or when grouping should depend on a dynamic value. The default identifier path avoids stack-symbol capture. It still performs the normal work needed to build and compare the call-site identifier. ActorType The scheduling helpers that accept by actor: ActorType use that value to run the scheduled closure. - .mainActor : sync closures run on the main actor. Async closures are invoked from the main actor, but normal Swift actor isolation still applies inside the async body. - .ownedActor : closures run through a package-owned serial actor. - .taskContext : closures run directly in the scheduled task context. Explicitly @MainActor sync closures are accepted by dedicated ","default_branch":null,"files":null,"tree":[],"storefront":"/r/boraseoksoon","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/boraseoksoon/Throttler/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."}