Sample code for 30+ languages & platforms
Dart

Generate Monotonic ULIDs

See more ULID/UUID Examples

Generate a sequence of monotonic ULIDs all using the same seed time. This code sample generates a series of ULIDs with continuously increasing values.

Important: Chilkat's ULID functionality was introduced in v9.5.0.94.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final seedDt = CkDateTime();

  // You can set the seed time to any desired value.
  // In this example, the seed time is set to the current system date/time.
  seedDt.setFromCurrentSystemTime();

  // Generate the 1st ULID in the series.
  // (i.e. the current UTC UNIX-time)
  final utc = true;
  final ulid = seedDt.ulidGenerate(utc);
  print(ulid);

  // Store the ULID in a Chilkat StringBuilder to generate the series.
  final sbUlid = CkStringBuilder();
  sbUlid.append(ulid);

  var i = 0;
  while (i < 50) {
    seedDt.ulidIncrement(sbUlid);
    print(sbUlid.getAsString());
    i++;
  }

  // Sample output:

  // 01GRGH30H8DMQ4F9A0XCTZHPGM
  // 01GRGH30H8DMQ4F9A0XCTZHPGN
  // 01GRGH30H8DMQ4F9A0XCTZHPGP
  // 01GRGH30H8DMQ4F9A0XCTZHPGQ
  // 01GRGH30H8DMQ4F9A0XCTZHPGR
  // 01GRGH30H8DMQ4F9A0XCTZHPGS
  // 01GRGH30H8DMQ4F9A0XCTZHPGT
  // 01GRGH30H8DMQ4F9A0XCTZHPGV
  // 01GRGH30H8DMQ4F9A0XCTZHPGW
  // 01GRGH30H8DMQ4F9A0XCTZHPGX
  // 01GRGH30H8DMQ4F9A0XCTZHPGY
  // 01GRGH30H8DMQ4F9A0XCTZHPGZ
  // 01GRGH30H8DMQ4F9A0XCTZHPH0
  // 01GRGH30H8DMQ4F9A0XCTZHPH1
  // 01GRGH30H8DMQ4F9A0XCTZHPH2
  // 01GRGH30H8DMQ4F9A0XCTZHPH3
  // 01GRGH30H8DMQ4F9A0XCTZHPH4
  // 01GRGH30H8DMQ4F9A0XCTZHPH5
  // 01GRGH30H8DMQ4F9A0XCTZHPH6
  // 01GRGH30H8DMQ4F9A0XCTZHPH7
  // 01GRGH30H8DMQ4F9A0XCTZHPH8
  // 01GRGH30H8DMQ4F9A0XCTZHPH9
  // 01GRGH30H8DMQ4F9A0XCTZHPHA
  // 01GRGH30H8DMQ4F9A0XCTZHPHB
  // 01GRGH30H8DMQ4F9A0XCTZHPHC
  // 01GRGH30H8DMQ4F9A0XCTZHPHD
  // 01GRGH30H8DMQ4F9A0XCTZHPHE
  // 01GRGH30H8DMQ4F9A0XCTZHPHF
  // 01GRGH30H8DMQ4F9A0XCTZHPHG
  // 01GRGH30H8DMQ4F9A0XCTZHPHH
  // 01GRGH30H8DMQ4F9A0XCTZHPHJ
  // 01GRGH30H8DMQ4F9A0XCTZHPHK
  // 01GRGH30H8DMQ4F9A0XCTZHPHM
  // 01GRGH30H8DMQ4F9A0XCTZHPHN
  // 01GRGH30H8DMQ4F9A0XCTZHPHP
  // 01GRGH30H8DMQ4F9A0XCTZHPHQ
  // 01GRGH30H8DMQ4F9A0XCTZHPHR
  // 01GRGH30H8DMQ4F9A0XCTZHPHS
  // 01GRGH30H8DMQ4F9A0XCTZHPHT
  // 01GRGH30H8DMQ4F9A0XCTZHPHV
  // 01GRGH30H8DMQ4F9A0XCTZHPHW
  // 01GRGH30H8DMQ4F9A0XCTZHPHX
  // 01GRGH30H8DMQ4F9A0XCTZHPHY
  // 01GRGH30H8DMQ4F9A0XCTZHPHZ
  // 01GRGH30H8DMQ4F9A0XCTZHPJ0
  // 01GRGH30H8DMQ4F9A0XCTZHPJ1
  // 01GRGH30H8DMQ4F9A0XCTZHPJ2
  // 01GRGH30H8DMQ4F9A0XCTZHPJ3
  // 01GRGH30H8DMQ4F9A0XCTZHPJ4
  // 01GRGH30H8DMQ4F9A0XCTZHPJ5
  // 01GRGH30H8DMQ4F9A0XCTZHPJ6
}