This repository has been archived by the owner on Aug 8, 2024. It is now read-only.
Releases: spring-media/Carlos
Releases · spring-media/Carlos
1.2.1
1.2.0
New Features
- Added a way to remove object for a specific key from a cache. See
remove(_:)
.
1.1.1
Fixes
- Fixed an issue when a composed cache was calling
receiveValue
twice or more in some cases
1.1.0
Changes
- Made Carlos less opinionated on which queue it shall run its operations.
- Wrap Carlos Future's in
Deferred
to make sure that Carlos doesn't execute its operation unless there are subscribers.
1.0.0 Combine Migration
1.0.0
Breaking Changes
- Swift 5.3 and Xcode 12 support
- The codebase has been migrated from PiedPiper to Combine
- The minimum supported OS version set to Combine's minimum supported version: iOS 13, macOS 10.15, watchOS 6, tvOS 13.
- Removed
Dispatched.swift
andRequestCapperCache.swift
because the functionality they provided could be easily re-implemented using Combine operators.
New Features
Carlos
is now powered by Combine which means you can use awesome Combine provided operators on the Carlos cached values!
0.10.1 Carthage Fix
Fixed
- Fixed an issue when app archive fails for the app which use Carlos due to PiedPiper being embedded #187
0.10.0 Swift Package Manager Support
Breaking Changes
- Xcode 11.5+ required
New Features
- Swift Package Manager Support
0.9.1: Swift 3!
Breaking changes
- Swift 3.0 support (for Swift 2.3 use specific commit
5d354c829d766568f164c386c59de21357b5ccff
instead) batchGetAll
has been removed and replaced with a reifiedallBatch
(see New features)- All deprecated functions have been removed
- All custom operators have been removed in favor of their function counterparts
- macOS and tvOS support has been temporarily dropped and will be probably re-added in the future
set
method onCacheLevel
now returns aFuture
enabling error-handling and progress-tracking ofset
calls.
New Features
- It's now possible to lift a
CacheLevel
into one that operates on a sequence of keys and returns a sequence of values. You can useallBatch
to create a concreteBatchAllCache
. You can useget
on this cache if you want to pass a list of keys and get the success callback when all of them succeed and the failure callback as soon as one of them fails (old behavior ofbatchGetAll
), or you can compose or transform anallBatch
cache just like any anotherCacheLevel
. Consult theREADME.md
for an example.
Independence day
Breaking changes
- The codebase has been migrated to Swift 2.2
Promise
now has only an emptyinit
. If you used one of the convenienceinit
(withvalue:
, witherror:
or withvalue:error:
), they now moved toFuture
.
New features
- Adds
value
anderror
properties toResult
- Added a way to initialize
Future
s through closures - It's now possible to
map
Future
s through:- a simple transformation closure
- a closure that
throws
- It's now possible to
flatMap
Future
s through:- a closure that returns an
Optional
- a closure that returns another
Future
- a closure that returns a
Result
- a closure that returns an
- It's now possible to
filter
Future
s through:- a simple condition closure
- a closure that returns a
Future<Bool>
- It's now possible to
reduce
aSequenceType
ofFuture
s into a newFuture
through acombine
closure - It's now possible to
zip
aFuture
with either anotherFuture
or with aResult
- Added
merge
to aSequenceType
ofFuture
s to collapse a list ofFuture
s into a single one - Added
traverse
toSequenceType
to generate a list ofFuture
s through a given closure andmerge
them together - Added
recover
toFuture
so that it's possible to provide a default value theFuture
can use instead of failing - It's now possible to
map
Result
s through:- a simple transformation closure
- a closure that
throws
- It's now possible to
flatMap
Result
s through:- a closure that returns an
Optional
- a closure that returns a
Future
- a closure that returns another
Result
- a closure that returns an
- It's now possible to
filter
Result
s through a simple condition closure - Added
mimic
toResult
Pied Piper 0.7
First release of Pied Piper
as a separate framework.
Breaking changes
- As documented in the
MIGRATING.md
file, you will have to add aimport PiedPiper
line everywhere you make use of Carlos'Future
s orPromise
s.
New features
- It's now possible to compose async functions and
Future
s through the>>>
operator. - The implementation of
ReadWriteLock
taken from Deferred is now exposed aspublic
. - It's now possible to take advantage of the
GCD
struct to execute asynchronous computation through the functionsmain
andbackground
for GCD built-in queues andasync
for GCD serial or custom queues.
Improvements
Promise
s are now safer to use with GCD and in multi-thread scenarios.
Fixes
- Fixes a bug where calling
succeed
,fail
orcancel
on aPromise
or aFuture
didn't correctly release all the attached listeners. - Fixes a retain cycle between
Promise
andFuture
objects.