tsid_dart 0.2.0 copy "tsid_dart: ^0.2.0" to clipboard
tsid_dart: ^0.2.0 copied to clipboard

A TSID Port for Dart libraries or applications. it probably possible to run on any platform, however it was tested on macos and web only.

TSID-Dart #

A Dart library for generating Time-Sorted Unique Identifiers (TSID).

This library is a Dart implementation of tsid-creator.

Install #

# pubspec.yaml
dependencies:
  tsid_dart: ^0.2.0

Quick Start #

import 'package:tsid_dart/tsid_dart.dart';

void main() {
  // Generate a TSID
  final tsid = Tsid.getTsid();

  // String form (Crockford base32, 13 chars)
  final asString = tsid.toString();

  // Numeric form (unsigned 64-bit as BigInt)
  final asNumber = tsid.toLong();

  print('$asString -> $asNumber');
}

Example Program #

An executable example is available in example/main.dart.

dart run example/main.dart

API Highlights #

// Parse
final a = Tsid.fromString('0AXS751X00W7R');
final b = Tsid.fromNumber(BigInt.one);
final c = Tsid.fromBytes(Uint8List(8));

// Validate
final ok = Tsid.isValid('0AXS751X00W7R');

// Different node capacities
final t256 = Tsid.getTsid256();
final t1024 = Tsid.getTsid1024();
final t4096 = Tsid.getTsid4096();

// Base-N conversion
final z = a.encode(62);
final zBack = Tsid.decode(z, 62);

// Formatting
final formatted = a.format('DOC-%S');
final parsed = Tsid.unformat(formatted, 'DOC-%S');

Notes #

  • Use toLong() for numeric representation (BigInt).
  • On web, toInt() is intentionally unsupported because TSID values can exceed JavaScript safe integer range.
3
likes
160
points
170
downloads

Publisher

unverified uploader

Weekly Downloads

A TSID Port for Dart libraries or applications. it probably possible to run on any platform, however it was tested on macos and web only.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

collection, convert, decimal

More

Packages that depend on tsid_dart