ferroid 1.0.2

High-performance ULID and Snowflake-style IDs. Unique, monotonic, and lexicographically sortable IDs optimized for low-latency services and async workloads.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85.1"
name = "ferroid"
version = "1.0.2"
authors = ["Nick Angelou <angelou.nick@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance ULID and Snowflake-style IDs. Unique, monotonic, and lexicographically sortable IDs optimized for low-latency services and async workloads."
documentation = "https://docs.rs/ferroid"
readme = "README.md"
keywords = [
    "no_std",
    "id",
    "snowflake",
    "ulid",
    "monotonic",
]
categories = [
    "data-structures",
    "encoding",
    "asynchronous",
    "no-std",
    "development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/s0l0ist/ferroid/blob/main/crates/ferroid"

[package.metadata.docs.rs]
features = ["all"]
no-default-features = true

[features]
all = [
    "std",
    "alloc",
    "snowflake",
    "ulid",
    "thread-local",
    "basic",
    "lock",
    "atomic",
    "base32",
    "async-tokio",
    "async-smol",
    "serde",
]
alloc = []
async-smol = [
    "std",
    "alloc",
    "futures",
    "dep:smol",
]
async-tokio = [
    "std",
    "alloc",
    "futures",
    "dep:tokio",
]
atomic = []
base32 = []
basic = []
cache-padded = ["dep:crossbeam-utils"]
default = []
futures = ["dep:futures"]
lock = [
    "std",
    "alloc",
]
parking-lot = [
    "std",
    "alloc",
    "dep:parking_lot",
]
serde = ["dep:serde"]
snowflake = []
std = ["dep:rand"]
thread-local = [
    "std",
    "alloc",
    "ulid",
    "basic",
]
tracing = ["dep:tracing"]
ulid = []

[lib]
name = "ferroid"
crate-type = ["rlib"]
path = "src/lib.rs"

[[bench]]
name = "bench"
path = "benches/bench.rs"
harness = false

[dependencies.crossbeam-utils]
version = "0.8"
optional = true
default-features = false

[dependencies.futures]
version = "0.3"
optional = true
default-features = false

[dependencies.parking_lot]
version = "0.12"
optional = true
default-features = false

[dependencies.portable-atomic]
version = "1.13"
default-features = false

[dependencies.rand]
version = "0.9"
features = ["thread_rng"]
optional = true
default-features = false

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
default-features = false

[dependencies.smol]
version = "2.0"
optional = true
default-features = false

[dependencies.tokio]
version = "1.49"
features = [
    "rt",
    "time",
]
optional = true
default-features = false

[dependencies.tracing]
version = "0.1"
features = ["attributes"]
optional = true
default-features = false

[dev-dependencies.criterion]
version = "0.7"
features = [
    "async_tokio",
    "async_smol",
]
default-features = false

[dev-dependencies.futures]
version = "0.3"
features = ["alloc"]
default-features = false

[dev-dependencies.serde_json]
version = "1.0"
default-features = false

[dev-dependencies.tokio]
version = "1.49"
features = [
    "rt-multi-thread",
    "macros",
    "sync",
]
default-features = false

[target.wasm32-unknown-unknown.dependencies.web-time]
version = "1.1"
default-features = false