| Crates.io | nu_plugin_nw_ulid |
| lib.rs | nu_plugin_nw_ulid |
| version | 0.1.2 |
| created_at | 2025-08-21 14:40:36.568691+00 |
| updated_at | 2025-12-20 02:30:11.139143+00 |
| description | Production-grade ULID (Universally Unique Lexicographically Sortable Identifier) utilities plugin for Nushell with cryptographically secure operations, enterprise-grade security, and streaming support |
| homepage | https://github.com/nushell-works/nu_plugin_nw_ulid |
| repository | https://github.com/nushell-works/nu_plugin_nw_ulid |
| max_upload_size | |
| id | 1804920 |
| size | 819,405 |
Production-grade ULID (Universally Unique Lexicographically Sortable Identifier) utilities plugin for Nushell. Generate, parse, validate & manipulate ULIDs with cryptographically secure operations, enterprise-grade security, streaming support, and seamless integration with Nushell's structured data model.
cargo install nu_plugin_nw_ulid
git clone https://github.com/nushell-works/nu_plugin_nw_ulid.git
cd nu_plugin_nw_ulid
cargo install --path .
After installation, register the plugin with Nushell:
plugin add ~/.cargo/bin/nu_plugin_nw_ulid
plugin use nw_ulid
# Check plugin information
ulid info
# Generate ULIDs
ulid generate # Generate single ULID
ulid generate --count 5 # Generate multiple ULIDs
ulid generate --timestamp 1692000000000 # Generate with custom timestamp
# Validate and parse ULIDs
ulid validate "01AN4Z07BY79KA1307SR9X4MV3" # Validate ULID format
ulid parse "01AN4Z07BY79KA1307SR9X4MV3" # Parse into components
# Sort and inspect ULIDs
echo ["01BN4Z07BY79KA1307SR9X4MV3", "01AN4Z07BY79KA1307SR9X4MV3"] | ulid sort
ulid inspect "01AN4Z07BY79KA1307SR9X4MV3" # Detailed ULID analysis
# Stream processing for large datasets
echo ["01AN4Z07BY79KA1307SR9X4MV3", "invalid"] | ulid stream validate
ulid generate-stream --count 1000 --batch-size 100
# Security context checking
ulid security-advice --context "api-keys" # Get security recommendations
ulid generate [--count] [--timestamp] [--format] [--context] - Generate ULIDs with optionsulid validate <ulid> - Validate ULID format and integrityulid parse <ulid> - Parse ULID into timestamp and randomness componentsulid security-advice [--context] - Get security recommendations for ULID usageulid sort [--reverse] [--natural] - Sort data by ULID timestamp orderulid inspect <ulid> - Extract detailed metadata and statistics from ULIDsulid stream <operation> [--batch-size] [--parallel] [--continue-on-error] - Stream-process large datasetsulid generate-stream [--count] [--batch-size] [--timestamp] - Generate continuous ULID streamsulid time now [--format] - Current timestamp in various formatsulid time parse <timestamp> - Parse timestamps into componentsulid time millis [timestamp] - Convert to milliseconds (ULID format)ulid encode base32 <data> - Encode using Crockford Base32 (ULID standard)ulid decode base32 <data> [--text] - Decode Crockford Base32ulid encode hex <data> [--uppercase] - Hexadecimal encodingulid decode hex <data> [--text] - Hexadecimal decodingulid hash sha256 <data> - SHA-256 hashingulid hash sha512 <data> - SHA-512 hashingulid hash blake3 <data> [--length] - BLAKE3 hashing with variable lengthulid hash random [--length] - Cryptographically secure random bytesulid uuid generate - Generate UUID v4 (compatibility)ulid uuid validate <uuid> - Validate UUID formatulid uuid parse <uuid> - Parse UUID into componentsulid info - Display plugin metadata and diagnostics# Plugin information
> ulid info
╭─────────────┬────────────────────────────────────────────────────────────────╮
│ name │ nu_plugin_nw_ulid │
│ version │ 0.1.0 │
│ description │ Professional ULID (Universally Unique Lexicographically │
│ │ Sortable Identifier) utilities plugin for Nushell │
│ authors │ John Ky <newhoggy@gmail.com> │
│ license │ BSD-3-Clause │
│ repository │ https://github.com/nushell-works/nu_plugin_nw_ulid │
╰─────────────┴────────────────────────────────────────────────────────────────╯
# Generate and work with ULIDs
> ulid generate
01K2W41TWG3FKYYSK430SR8KW6
> ulid validate "01K2W41TWG3FKYYSK430SR8KW6"
true
> ulid parse "01K2W41TWG3FKYYSK430SR8KW6"
╭────────────┬────────────────────────────╮
│ ulid │ 01K2W41TWG3FKYYSK430SR8KW6 │
│ timestamp │ {record 3 fields} │
│ randomness │ {record 1 field} │
│ valid │ true │
╰────────────┴────────────────────────────╯
# Bulk operations
> ulid generate --count 3
╭───┬────────────────────────────╮
│ 0 │ 01K2W41TWG3FKYYSK430SR8KW7 │
│ 1 │ 01K2W41TWG3FKYYSK430SR8KW8 │
│ 2 │ 01K2W41TWG3FKYYSK430SR8KW9 │
╰───┴────────────────────────────╯
# Stream processing for large datasets
> echo ["01K2W41TWG3FKYYSK430SR8KW6", "invalid"] | ulid stream validate
╭───┬─────────────────────────────┬───────╮
│ # │ ulid │ valid │
├───┼─────────────────────────────┼───────┤
│ 0 │ 01K2W41TWG3FKYYSK430SR8KW6 │ true │
│ 1 │ invalid │ false │
╰───┴─────────────────────────────┴───────╯
ULIDs (Universally Unique Lexicographically Sortable Identifiers) are 128-bit identifiers that are:
01ARZ3NDEKTSV4RRFFQ69G5FAV
|----------|-------------|
Timestamp Randomness
(48-bit) (80-bit)
Based on benchmarking against reference implementations:
git clone https://github.com/nushell-works/nu_plugin_nw_ulid.git
cd nu_plugin_nw_ulid
cargo build --release
cargo test
cargo clippy
cargo fmt --check
cargo audit
cargo deny check
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
cargo clippy with no warningscargo fmtcargo audit, cargo deny check)This plugin follows enterprise-grade development practices:
Licensed under the BSD 3-Clause License. See LICENSE for details.
Built with ❤️ for the Nushell community