tsid_dart 0.2.0
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.