All Projects → FactorialComplexity → FYCachedURLAsset

FactorialComplexity / FYCachedURLAsset

Licence: MIT license
Enhanced AVURLAsset with seamless cache layer

Programming Languages

objective c
16641 projects - #2 most used programming language
shell
77523 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to FYCachedURLAsset

Siesta
The civilized way to write REST API clients for iOS / macOS
Stars: ✭ 2,142 (+11800%)
Mutual labels:  caching
Varnish Cache
Varnish Cache source code repository
Stars: ✭ 2,769 (+15283.33%)
Mutual labels:  caching
robodux
caching in redux made simple
Stars: ✭ 98 (+444.44%)
Mutual labels:  caching
Simple Spring Memcached
A drop-in library to enable memcached caching in Spring beans via annotations
Stars: ✭ 185 (+927.78%)
Mutual labels:  caching
Joblib
Computing with Python functions.
Stars: ✭ 2,620 (+14455.56%)
Mutual labels:  caching
Cacheout
A caching library for Python
Stars: ✭ 238 (+1222.22%)
Mutual labels:  caching
Safer
🧿 safer writing in Python 🧿
Stars: ✭ 166 (+822.22%)
Mutual labels:  caching
keyv
Simple key-value storage with support for multiple backends.
Stars: ✭ 202 (+1022.22%)
Mutual labels:  caching
Crafatar
A blazing fast API for Minecraft faces
Stars: ✭ 212 (+1077.78%)
Mutual labels:  caching
cashews
Cache with async power
Stars: ✭ 204 (+1033.33%)
Mutual labels:  caching
Scaffeine
Thin Scala wrapper for Caffeine (https://github.com/ben-manes/caffeine)
Stars: ✭ 195 (+983.33%)
Mutual labels:  caching
Alfred Workflow
Full-featured library for writing Alfred 3 & 4 workflows
Stars: ✭ 2,622 (+14466.67%)
Mutual labels:  caching
Quell
Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.
Stars: ✭ 473 (+2527.78%)
Mutual labels:  caching
Mahuta
IPFS Storage service with search capability
Stars: ✭ 185 (+927.78%)
Mutual labels:  caching
Miles
Swift Playground that creates jazz improvisations (WWDC 2018)
Stars: ✭ 31 (+72.22%)
Mutual labels:  avfoundation
Cacher
Super simple caching solution for iOS, macOS, tvOS and watchOS.
Stars: ✭ 169 (+838.89%)
Mutual labels:  caching
Eram
Open Source RAM Disk
Stars: ✭ 227 (+1161.11%)
Mutual labels:  caching
oc-speedy-plugin
Website optimization plugin for October CMS
Stars: ✭ 18 (+0%)
Mutual labels:  caching
asgi-caches
Server-side HTTP caching for ASGI applications, inspired by Django's cache framework
Stars: ✭ 18 (+0%)
Mutual labels:  caching
wizards-apollo
An application for my talk about caching management with Apollo Client 3
Stars: ✭ 54 (+200%)
Mutual labels:  caching

FYCachedURLAsset

Version License Platform

It's enhanced AVURLAsset with seamless cache layer. It handles the playing of an audio/video file while streaming and simultaneuosly saving downloaded data to a local URL. FYCachedURLAsset was designed to prevent download the same bytes twice.

Installation

Manual:
Add to your project source files from FYCachedURLAsset folder

CocoaPods:
FYCachedURLAsset is available through CocoaPods. To install it, add the following line to your Podfile:

pod 'FYCachedURLAsset'

How to use

FYCachedURLAsset is a replacement for [AVURLAsset URLAssetWithURL:URL options:nil], but with additional local file path argument

NSString *cacheFilePath = [documentsPath stringByAppendingPathComponent:[URL lastPathComponent]];

FYCachedURLAsset *asset = [FYCachedURLAsset cachedURLAssetWithURL:URL cacheFilePath:cacheFilePath];

Features

  • supports streaming of media file, so it can be playbacked as soon as first data is available
  • simultaneously saves all downloaded data to a file during streaming
  • gracefully handles interruptions and resumes download only from place where was stopped
  • supports ETag header attribute to skip file download if no changes were made on the remote file from the last time
  • allows to seek stream to any place, but with limited cache support

License

FYCachedURLAsset is available under the MIT license. See the LICENSE file for more info.

Example

To run the example project, clone the repo, and run pod install from the Example directory, open workspace file and run.

screenshot screenshot

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].