New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

io.github.scru128:scru128

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

io.github.scru128:scru128

SCRU128: Sortable, Clock and Random number-based Unique identifier

  • 3.0.2
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

SCRU128: Sortable, Clock and Random number-based Unique identifier

Maven Central License

SCRU128 ID is yet another attempt to supersede UUID for the users who need decentralized, globally unique time-ordered identifiers. SCRU128 is inspired by ULID and KSUID and has the following features:

  • 128-bit unsigned integer type
  • Sortable by generation time (as integer and as text)
  • 25-digit case-insensitive textual representation (Base36)
  • 48-bit millisecond Unix timestamp that ensures useful life until year 10889
  • Up to 281 trillion time-ordered but unpredictable unique IDs per millisecond
  • 80-bit three-layer randomness for global uniqueness

Kotlin examples:

import io.github.scru128.Scru128

// generate a new identifier object
val x = Scru128.generate()
println(x) // e.g., "036z951mhjikzik2gsl81gr7l"
println(x.toByteArray()) // as a 128-bit unsigned integer in big-endian byte array

// generate a textual representation directly
println(Scru128.generateString()) // e.g., "036z951mhzx67t63mq9xe6q0j"

Java examples:

import io.github.scru128.*;

// generate a new identifier object
Scru128Id x = Scru128.generate();
System.out.println(x); // e.g., "036z951mhjikzik2gsl81gr7l"
System.out.println(x.toByteArray()); // as a 128-bit unsigned integer in big-endian byte array

// generate a textual representation directly
System.out.println(Scru128.generateString()); // e.g., "036z951mhzx67t63mq9xe6q0j"

See SCRU128 Specification for details.

Installation

Obtain a copy from Maven Central Repository. build.gradle.kts example:

repositories {
    mavenCentral()
}

dependencies {
    implementation("io.github.scru128:scru128:<version>")
}

Target environment

  • Java 8 or higher
  • Android API level 21 (Android 5.0) or higher

License

Licensed under the Apache License, Version 2.0.

See also

FAQs

Package last updated on 18 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc