a0d3f47192
Mirrors keysat 0014 + TS SDK 0.3.0. PublicPoliciesProduct gains
entitlements_catalog: Vec<EntitlementDef> with {slug, name,
description}. SDK consumers' in-app tier pickers can render display
names + tooltip descriptions instead of raw slugs. Empty vec on
legacy products without a catalog. No breaking change.
42 lines
1.3 KiB
TOML
42 lines
1.3 KiB
TOML
[package]
|
|
name = "keysat-licensing-client"
|
|
version = "0.3.0"
|
|
edition = "2021"
|
|
rust-version = "1.75"
|
|
description = "Client library for Keysat. Verifies signed license keys offline and wraps the HTTP API for purchase and revocation checks."
|
|
license = "MIT OR Apache-2.0"
|
|
repository = "https://github.com/keysat-xyz/keysat-client-rust"
|
|
keywords = ["bitcoin", "licensing", "btcpay", "start9"]
|
|
categories = ["authentication", "cryptography"]
|
|
|
|
[features]
|
|
# Default is offline-only verification — no network, no async runtime required.
|
|
default = ["offline"]
|
|
offline = []
|
|
# Online verification + purchase via reqwest. Async (tokio).
|
|
online = ["reqwest", "tokio", "url"]
|
|
|
|
[dependencies]
|
|
ed25519-dalek = { version = "2", features = ["pkcs8", "pem"] }
|
|
sha2 = "0.10"
|
|
data-encoding = "2"
|
|
thiserror = "1"
|
|
|
|
# Async / HTTP: only compiled with the `online` feature.
|
|
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"], optional = true }
|
|
tokio = { version = "1", features = ["rt", "macros"], optional = true }
|
|
url = { version = "2", optional = true }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
[[example]]
|
|
name = "offline_verify"
|
|
required-features = ["offline"]
|
|
|
|
[[example]]
|
|
name = "online_validate"
|
|
required-features = ["online"]
|