ttl_cache 0.2.0 copy "ttl_cache: ^0.2.0" to clipboard
ttl_cache: ^0.2.0 copied to clipboard

A simple key-value store whose entires expire after a user-defined time-to-live (TTL)

ttl_cache #

Powered by Mason License: MIT

A simple Dart key-value store with optional entry expiration.

Usage #

A simple usage example:

import 'package:ttl_cache/ttl_cache.dart';

void main() {
  final cache = TtlCache<String, int>(defaultTtl: Duration(seconds: 1));

  // Set 'a' and 'b' with a default TTL of 1 second.
  // These lines are equivalent.
  cache['a'] = 1;
  cache.set('b', 2);

  // Set 'c' with a TTL of 3 seconds.
  cache.set('c', 3, ttl: Duration(seconds: 3));

  // Set 'd' with no TTL. This entry will remain in the cache until it is
  // manually removed.
  cache.set('d', 4, ttl: null);

  print(cache['a']); // 1
  print(cache['b']); // 2
  print(cache['c']); // 3
  print(cache['d']); // 4

  // Entries with the default TTL will have expired. 'c' has a TTL of 3 seconds
  // and will still be available.
  Future.delayed(Duration(seconds: 2), () {
    print(cache['a']); // null
    print(cache['b']); // null
    print(cache['c']); // 3
    print(cache['d']); // 4
  });

  // All entries from above with TTLs will have expired. 'd' has no TTL and will
  // still be available.
  Future.delayed(Duration(seconds: 4), () {
    // 'a' and 'b' will still be null
    print(cache['c']); // null
    print(cache['d']); // 4
  });
}
2
likes
160
points
10.9k
downloads

Publisher

verified publisherbryanoltman.com

Weekly Downloads

A simple key-value store whose entires expire after a user-defined time-to-live (TTL)

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

clock

More

Packages that depend on ttl_cache