#double-click #hash #double-clickable

bin+lib okid

A library for generating double clickable ids

49 releases (20 breaking)

new 0.22.0 Nov 8, 2025
0.20.1 Oct 15, 2025
0.16.2 May 31, 2025
0.12.2 Feb 25, 2025
0.5.3 Nov 21, 2024

#326 in Cryptography

Download history 98/week @ 2025-09-24 396/week @ 2025-10-01 41/week @ 2025-10-08 572/week @ 2025-10-15 74/week @ 2025-10-22 100/week @ 2025-10-29

817 downloads per month
Used in 7 crates (via jetstream_rpc)

BSD-3-Clause

500KB
2K SLoC

👌🫆 okid

FOSSA Status

okid is a library for generating double clickable representations of various types of data, such as sha1 hashes, uuids and more.

sha1

#[cfg(feature = "sha1")]
{
    use sha1::Digest as sha1digest;
    let hasher = sha1::Sha1::new();
    let binary_id = okid::OkId::from(hasher);
}

sha256

#[cfg(feature = "sha2")]
{
    use sha2::Digest;
    let mut hasher = sha2::Sha256::new();
    hasher.update(b"hello world");
    let binary_id = okid::OkId::from(hasher);
}

The resulting strings look like this: 2ː00b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 first character of the string is the type of the binary data in this case 2 means sha256 the rest of the string is the hexadecimal representation of the binary data

okid macro

The okid! macro can be used to parse OkIds from string literals at compile time.

use okid::{okid, OkId};
#[cfg(feature = "sha2")]
const HELLO_WORLD_SHA256: OkId = okid!("2ːb94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9");

Development

Build Tasks

This project uses cargo xtask for build automation. Available tasks:

# Build the Rust library
cargo xtask build

# Build the main WASM module
cargo xtask wasm

# Build and serve mdbook documentation
cargo xtask mdbook

# Build docs with all WASM modules
cargo xtask build-docs

# Run all tests
cargo xtask test

License

FOSSA Status

Dependencies

~14–56MB
~824K SLoC