globuid 0.1.0

A globally unique ID generator with pluggable algorithms and transport layer
Documentation
[package]
name = "globuid"
version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
authors = ["GlobUid Contributors"]
description = "A globally unique ID generator with pluggable algorithms and transport layer"
documentation = "https://docs.rs/globuid"
homepage = "https://github.com/lispking/globuid"
repository = "https://github.com/lispking/globuid"
readme = "README.md"
keywords = ["snowflake", "ulid", "nanoid", "id-generator", "distributed"]
categories = ["algorithms", "web-programming"]

[features]
default = []
# HTTP transport support
http = ["axum", "tower", "tower-http"]
# gRPC transport support
grpc = ["tonic", "prost"]
# All transport layers
full = ["http", "grpc"]

[dependencies]
# Core dependencies (always included)
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
thiserror = "1"
tracing = "0.1"
getrandom = "0.3"

# HTTP transport (optional)
axum = { version = "0.7", optional = true }
tower = { version = "0.5", optional = true }
tower-http = { version = "0.6", features = ["cors"], optional = true }

# gRPC transport (optional)
tonic = { version = "0.12", optional = true }
prost = { version = "0.13", optional = true }

# CLI dependencies (for binary)
clap = { version = "4", features = ["derive"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[dev-dependencies]
reqwest = { version = "0.12", features = ["json"] }

[build-dependencies]
tonic-build = "0.12"

[lib]
path = "src/lib.rs"

[[bin]]
name = "globuid"
path = "src/bin/globuid.rs"