hlc 1.0.3 icon indicating copy to clipboard operation
hlc: ^1.0.3 copied to clipboard

Dart port of a hybrid logical clock (HLC).

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.

Generated documentation can be found here.

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);
0
likes
100
pub points
32%
popularity

Publisher

unverified uploader

Dart port of a hybrid logical clock (HLC).

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (LICENSE)

More

Packages that depend on hlc