A Promise A+ compatible library with cancellation and notification