Skip to content

A versatile and extensible caching library written in pure Dart, offering Guava-like caching capabilities.

License

Notifications You must be signed in to change notification settings

helightdev/canister

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Canister - A Versatile Dart Caching Library

GitHub Workflow Status Pub Version (including pre-releases) Pub Points Pub Likes

Canister is a powerful and extensible caching library for Dart, offering a wide range of caching strategies and features to enhance the performance of your Dart applications. Whether you need to reduce latency, optimize data retrieval, or implement memoization, Canister has you covered.

Features

  • Extensible: Customize and extend Canister to tailor caching strategies to your specific needs.
  • Guava-Like Caches: Familiar caching patterns inspired by Guava's caching library.
  • Lazy Computations: Easily make your existing functions compute lazily.
  • Asynchronous Caching: Seamlessly handle asynchronous operations for modern Dart applications.
  • Memoization: Efficiently cache function results to eliminate redundant computations.
  • Expiration Policies: Configure expiration rules based on write or read operations.
  • Weight Functions: Assign weights to cache entries for advanced cache management.
  • Removal Listeners: Trigger actions when cache entries are removed, adding flexibility and functionality.

Installation

Add the following dependency to your pubspec.yaml:

dependencies:
  canister: ^1.0.0

Usage

import 'package:canister/canister.dart';

void main() {
  // Create and configure a cache
  final cache = CacheBuilder<String, int>()
      .capacity(100)
      .expireAfterWrite(Duration(minutes: 30))
      .build();

  // Put a value into the cache
  cache.put('key', 42);

  // Get a value from the cache
  final value = cache.get('key');
  print('Cached Value: $value');
}

Fore more examples, have a look at the example folder.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request on our GitHub repository.

About

A versatile and extensible caching library written in pure Dart, offering Guava-like caching capabilities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages