momento 0.3.0 copy "momento: ^0.3.0" to clipboard
momento: ^0.3.0 copied to clipboard

Dart client for interacting with Momento

logo

project status project stability

Momento Client Library for Dart #

Momento Cache is a fast, simple, pay-as-you-go caching solution without any of the operational overhead required by traditional caching solutions. This repo contains the source code for the Momento client library for Dart.

To get started with Momento you will need a Momento Auth Token. You can get one from the Momento Console.

Momento Dart SDK #

To get started with Momento you will need a Momento API key. You can get one from the Momento Console.

Packages #

The Momento Dart SDK is available on pub.dev

To install in your Dart program, use:

dart pub add momento

To install in your Flutter program, use:

flutter pub add momento

Usage #

Check out our example directory for complete examples of using the Momento Dart SDK to implement a publish and subscribe system in a basic Dart program and in a Flutter app.

Here is a quickstart you can use for your own project:

import 'package:momento/momento.dart';

Future<void> main() async {
  final cacheClient = CacheClient(
      CredentialProvider.fromEnvironmentVariable("MOMENTO_API_KEY"),
      CacheClientConfigurations.latest(),
      Duration(seconds: 30));

  final cacheName = "cache";
  final key = "key";
  final value = "value";

  final createResp = await cacheClient.createCache(cacheName);
  switch (createResp) {
    case CreateCacheSuccess():
      print("Cache created!");
    case CreateCacheAlreadyExists():
      print("Cache already exists!");
    case CreateCacheError():
      print(
          "Cache creation error: ${createResp.errorCode} ${createResp.message}");
  }

  final setResp = await cacheClient.set(cacheName, key, value);
  switch (setResp) {
    case SetSuccess():
      print("Set successful!");
    case SetError():
      print("Set error: ${setResp.errorCode} ${setResp.message}");
  }

  final getResp = await cacheClient.get(cacheName, key);
  switch (getResp) {
    case GetHit():
      print("Found value in $cacheName: ${getResp.value}");
    case GetMiss():
      print("Value was not found in $cacheName!");
    case GetError():
      print("Got an error: ${getResp.errorCode} ${getResp.message}");
  }

  await cacheClient.close();
}

Getting Started and Documentation #

General documentation on Momento and the Momento SDKs is available on the Momento Docs website. Specific usage examples for the Dart SDK are coming soon!

Examples #

Check out full working code in the example directory of this repository!

Logging #

There is a LogLevel enum that contains the following log levels:

  • LogLevel.trace
  • LogLevel.debug
  • LogLevel.info
  • LogLevel.warn
  • LogLevel.error
  • LogLevel.fatal
  • LogLevel.off

This enum can be used to configure the logging level of the Momento package. By default, the logging level is set to LogLevel.info. To change the logging level, pass the desired level to the Configuration constructor:

var config = Mobile.latest(logLevel: LogLevel.debug);

Developing #

If you are interested in contributing to the SDK, please see the CONTRIBUTING docs.


For more info, visit our website at https://gomomento.com!

3
likes
140
points
299
downloads

Publisher

verified publishergomomento.com

Weekly Downloads

Dart client for interacting with Momento

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

fixnum, grpc, jwt_decoder, logging, protobuf, string_validator, uuid

More

Packages that depend on momento