For an open source tool for shortening URLs, the strongest matches are meituan-dianping/leaf (Leaf is a distributed unique ID generation system with), twitter-archive/snowflake (Snowflake is a production-grade distributed unique ID generation service) and segmentio/ksuid (segmentio/ksuid is a dedicated Go library for generating K‑sortable). oklog/ulid and twitter/snowflake round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Găsește cele mai bune scurtătoare de URL-uri open-source. Compară repository-urile de top după funcționalități, activitate și ușurința de deployment.
Leaf is a distributed unique ID generation system that provides two distinct modes for producing identifiers across multiple application instances without central coordination. It offers both a database-backed segment mode, which allocates blocks of IDs from a database table and caches them in memory for high throughput, and a Snowflake-style mode that combines timestamps, worker identifiers, and sequence counters to produce time-sortable unique IDs. The system distinguishes itself by offering dual-mode generation through a single RESTful endpoint, allowing applications to choose between segm
Leaf is a distributed unique ID generation system with Snowflake-style and segment modes, providing time-sortable, high-throughput IDs via a RESTful endpoint — exactly the kind of tool this search is after for generating unique identifiers in distributed systems.
Snowflake is a distributed unique ID generation service designed to produce non-colliding, time-ordered identification numbers at high scale. It functions as a scalable ID issuer that creates distinct entity identifiers across multiple server nodes to avoid coordination bottlenecks. The system utilizes stateless identifier coordination, calculating unique IDs through a deterministic mathematical formula rather than relying on a central database to track the last issued number. This approach allows it to generate identifiers for distributed database primary keys and high-scale transaction trac
Snowflake is a production-grade distributed unique ID generation service that creates time-ordered, compact 64-bit identifiers without a central coordinator, directly matching your need for a scalable identifier generator with time-sortability, compactness, and distributed generation.
ksuid is a Go implementation of k-sortable unique identifiers. It provides a system for generating globally unique identifiers that maintain a natural chronological order based on their generation timestamp. The project enables the creation of unique keys across distributed systems without a central coordinator. These identifiers are designed for use as database primary keys to maintain index performance and insert efficiency. The library includes capabilities for identifier serialization and parsing, allowing conversion between binary, text, and SQL formats. It also provides command-line to
segmentio/ksuid is a dedicated Go library for generating K‑sortable unique identifiers that are globally unique, time‑orderable, compact, and designed for distributed systems without a central coordinator – exactly the kind of unique‑ID generation tool this query targets.
This project is an implementation of the ULID standard in the Go programming language. It provides tools for generating universally unique, lexicographically sortable identifiers that combine millisecond timestamps with random data. The library ensures that identifiers maintain chronological order through alphabetical sorting. It includes a monotonic generator to guarantee that multiple identifiers created within the same millisecond are produced in a strictly increasing sequence. The project covers unique identifier generation and database primary key optimization. It also provides a comman
oklog/ulid is a pure Go library implementing the ULID standard, generating universally unique, time-sortable, compactly-encoded identifiers ideal for distributed systems, database keys, and API design — exactly the kind of unique identifier generation tool this search targets.
Snowflake is a high-concurrency RPC framework and distributed ID generation service. It provides the infrastructure to create unique, time-ordered identifiers across a network of servers and facilitates the development of network services designed to handle massive volumes of simultaneous requests. The system separates low-level transport logic from application behavior, allowing for the implementation of custom RPC protocols. It includes a distributed request tracing tool to visualize execution flow across network boundaries and a server lifecycle management interface to adjust logging level
Twitter's Snowflake is the canonical distributed ID generation service that produces unique, time-sortable, compact (64-bit) identifiers across network workers, directly matching the need for a distributed unique identifier tool.
This project is a distributed unique ID generator designed to produce 64-bit globally unique and sortable identifiers across multiple nodes. It implements a Snowflake-compatible algorithm that prevents collisions by combining timestamps, worker identifiers, and sequence numbers into a single integer. The system includes a worker ID orchestrator to allocate and maintain unique machine identities during instance startup and migration using database-backed strategies. To increase request throughput and reduce latency, it utilizes a ring-buffer caching layer that pre-generates identifiers and emp
Baidu's uid-generator is a distributed Snowflake-style ID library that produces compact 64-bit globally unique and time-sortable identifiers, with built-in worker coordination and high-throughput caching, covering all the distributed generation features you listed.
This project is a UUID generation library providing a standards-compliant implementation of RFC 4122. It serves as a tool for creating and validating universally unique identifiers across multiple versions to ensure global uniqueness and prevent data collisions. The library supports several generation methods, including random-based entropy, timestamp sequencing, and namespace-based hashing. It also includes utilities for identifier validation, parsing, and converting identifiers between hexadecimal string representations and binary byte arrays. A command line utility is included for the man
uuidjs/uuid is a standards-compliant UUID generation library that creates universally unique, time-sortable (via version 1), and randomly generated identifiers with parsing and validation, making it a perfect fit for creating identifiers in distributed systems and APIs.
shortid is a library for creating compact, non-sequential strings used as unique identifiers for database records and public URLs. It functions as a URL-friendly identifier utility designed to produce short alphanumeric strings. The project allows for the use of a custom alphabet to control the visual appearance of identifiers and avoid ambiguity. This custom character set mapping ensures that generated keys meet specific formatting or branding requirements. The system includes capabilities for non-sequential key generation to prevent resource enumeration, as well as tools to validate whethe
shortid is a library for generating compact, URL-friendly unique identifiers with custom alphabets and non-sequential generation, fitting the search for an identifier generation tool, though it does not emphasize time-sortability or distributed generation.
Nanoid is a library for generating unique, fixed-length identifiers designed for distributed systems and database indexing. It produces compact, URL-safe strings by mapping random byte values to a custom character set, allowing for consistent memory allocation and predictable indexing performance across independent nodes without the need for central coordination. The library distinguishes itself by utilizing system-level, cryptographically secure entropy sources to ensure that every generated identifier is statistically unpredictable. This approach provides resistance against collision attack
Nanoid generates compact, URL-safe unique identifiers with strong randomness for distributed systems, but it is not time-sortable like ULIDs or Snowflakes, so it fits the category while lacking one requested feature.
xid is a distributed unique identifier library designed to generate compact, globally unique, and k-sortable identifiers. It functions as a stateless generator that creates identifiers without requiring a central coordinator or network synchronization between instances. The project converts binary identifiers into human-readable, case-insensitive Base32 strings, making the output suitable for use in URLs and web applications. It ensures uniqueness across different processes and hosts by combining high-resolution timestamps with machine identifiers. These identifiers are designed for use as d
xid generates globally unique, time-sortable, compact identifiers suitable for distributed systems—exactly the kind of unique ID library you need, covering all the listed features (universal uniqueness, time ordering, small size, decentralized generation).
Typeid is a library for generating, encoding, and validating unique identifiers that combine human-readable prefixes with sortable, type-safe suffixes. By integrating descriptive prefixes with standardized binary-to-string conversion, it provides a structured approach to managing identifiers that remain globally unique and consistent across distributed systems. The project distinguishes itself by utilizing time-ordered bit structures and Crockford Base32 encoding to ensure that identifiers are both chronologically sortable and URL-safe. This format allows for the translation of standard 128-b
TypeID is a Go library that generates type-safe, K-sortable globally unique identifiers inspired by Stripe IDs, covering all the required features of uniqueness, sortability, compactness, and distributed generation for use in distributed systems.
A simple to use Go (golang) package to generate or parse Twitter snowflake IDs
bwmarrin/snowflake is a Go library that generates and parses Twitter-style snowflake IDs—compact, time-sortable, and designed for distributed generation—fitting your need for a unique identifier library that works across systems and databases.
This PHP library provides tools for generating and validating universally unique identifiers according to RFC 4122 standards. It implements a generation tool for creating version 1, 3, 4, and 5 identifiers, as well as sequential and Nil UUIDs. The library features specialized capabilities for transforming identifiers between hexadecimal strings, binary bytes, integers, and date objects. It supports the generation of sequential identifiers to improve database indexing and storage performance, as well as deterministic name-based identifiers using MD5 or SHA-1 hashing. The project includes a va
ramsey/uuid is a PHP library for generating and validating UUIDs across multiple RFC 4122 versions, including time-sortable (v1) and sequential variants, which directly supports your need for unique identifiers in distributed systems — though it focuses on UUIDs rather than other formats like ULIDs or Snowflakes.
This is an RFC 4122 UUID package for Go that generates, parses, and validates universally unique identifiers. It provides a library for creating UUIDs that conform to standard formatting rules, along with utilities for inspecting UUID properties such as variant, version, and nil status. The package supports DCE 1.1 Security Extension UUID generation and parsing, and includes byte-level UUID construction by directly manipulating 16-byte arrays with version and variant bits. It validates UUID strings against RFC 4122 formatting rules, including hyphens and hexadecimal characters, and can detect
This Go library implements RFC 4122 UUID generation, parsing, and validation, making it a solid choice for universally unique identifiers, though it does not provide time-sortable or compact formats like ULIDs or Snowflakes.
This is a Go library for generating and parsing universally unique identifiers. It provides a programmatic way to produce distinct identifiers and validate them according to the RFC 4122 industry standard. The project focuses on ensuring data uniqueness across distributed systems and databases. It includes tools for creating identifiers that follow recognized specifications and converting these identifiers between string representations and structured objects. The library covers capabilities for data validation, parsing, and distributed data indexing. It also provides utilities for applicati
This Go library generates and parses RFC 4122 UUIDs, making it a solid choice for universally unique identifiers in distributed systems, though it focuses on UUIDs rather than time-sortable formats like ULIDs or Snowflakes that you mentioned.
node-uuid is a JavaScript library for generating and validating universally unique identifiers that comply with the RFC 4122 standard. It provides a utility for creating random, timestamp-based, or namespace-based identifiers within a Node.js environment. The library includes tools for detecting the specific standard version of a provided identifier and transforming identifiers between different versions. It also provides a command line utility for generating identifiers directly from the terminal. The project covers binary manipulation, including parsing strings into byte arrays and stringi
node-uuid is a library for generating and validating RFC 4122 UUIDs, covering universal uniqueness and time-based ordering, but it does not natively produce the compact, distributed-generation identifiers like ULIDs or Snowflakes that your search also targets.
A UUID package for Go
gofrs/uuid is a Go library for generating universally unique identifiers (UUIDs), covering the core need for unique ID generation; it supports time-sortable versions (v6, v7) and distributed generation, making it a solid fit though limited to the UUID format.
This Go library generates NanoIDs, a compact and unique identifier format, which fits the request for a unique identifier generation tool, though it does not provide time-sortable identifiers like ULIDs or Snowflakes.
Hexadecimal object IDs. Available for Node.js and the browser._ Generate randomized output strings of fixed length using lowercased hexadecimal pairs.
Hexoid is a lightweight library that generates randomized fixed-length hexadecimal IDs, fitting the request for a unique identifier generator—though it produces purely random strings rather than time-sortable formats like ULIDs or Snowflakes.
Fast object IDs. Available for Node.js and the browser. Generate randomized output strings of fixed length using lowercase alphanumeric characters (a-z0-9). To produce IDs in UUID.V4 format, please see @lukeed/uuid.
lukeed/uid is a lightweight library for generating random fixed-length alphanumeric IDs, fitting the unique identifier generation category, but it lacks time-sortability, so it is ideal for basic distributed ID needs rather than time-ordered use cases like ULIDs or Snowflakes.
This module offers two modes for your needs:
This lightweight JavaScript library generates standard UUIDs (v4), meeting the core need for universally unique identifiers in distributed systems, but it does not produce time-sortable IDs like ULIDs or Snowflakes.
| Repository | Stele | Limbaj | Licență | Ultimul push |
|---|---|---|---|---|
| meituan-dianping/leaf | 6.7K | Java | apache-2.0 | |
| twitter-archive/snowflake | 7.8K | Scala | — | |
| segmentio/ksuid | 5.3K | Go | MIT | |
| oklog/ulid | 5K | Go | Apache-2.0 | |
| twitter/snowflake | 7.8K | Scala | — | |
| baidu/uid-generator | 5.6K | Java | Apache-2.0 | |
| uuidjs/uuid | 15.3K | TypeScript | MIT | |
| dylang/shortid | 5.7K | JavaScript | NOASSERTION | |
| ai/nanoid | 26.8K | JavaScript | MIT | |
| rs/xid | 4.3K | Go | MIT |