Skip to content

misha/dart_hlc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dart Hybrid Logical Clock (HLC)

This is a Dart port of the hybrid logical clock implementation described by Jared Forsyth in this article.

HLCs are a useful primitive for CRDT implementations.

Install

Pub Version

In pubspec.yaml:

dependencies:
  hlc: ^1.0.0

Usage

Import the library:

import 'package:hlc/hlc.dart';

Initialize a local HLC with the current wall clock:

var hlc = HLC.now();

Perform a local action that requires advancing the local HLC:

hlc = hlc.increment();

Receive a remote HLC, applying it to the local one:

final remoteHlc = HLC.now(); // From somewhere in the network.
hlc = hlc.receive(remoteHlc);

Serialize/deserialize an HLC while maintaining its topological ordering:

final serialized = hlc.pack();
final deserialized = HLC.unpack(serialized);

About

Dart port of a hybrid logical clock (HLC).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages