[package]
edition = "2024"
name = "zlicenser-server"
version = "0.1.2"
authors = ["ZAL Analytics <info@zal-analytics.ch>"]
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Server library for the zlicenser hardware-bound software licensing framework."
documentation = "https://docs.rs/zlicenser-server"
readme = "README.md"
keywords = [
"licensing",
"hardware-fingerprint",
"server",
"drm",
"zlicenser",
]
categories = [
"cryptography",
"authentication",
]
license = "Apache-2.0"
repository = "https://github.com/zal-analytics/zlicenser-server"
resolver = "2"
[features]
default = [
"storage-sqlite",
"http-server",
]
http-server = [
"dep:axum",
"dep:tower",
"dep:tower-http",
]
payment-stripe = ["dep:reqwest"]
storage-postgres = [
"dep:sqlx",
"sqlx?/postgres",
"sqlx?/migrate",
]
storage-sqlite = [
"dep:sqlx",
"sqlx?/sqlite",
"sqlx?/migrate",
]
[lib]
name = "zlicenser_server"
path = "src/lib.rs"
[[test]]
name = "issuance_postgres"
path = "tests/issuance_postgres.rs"
[[test]]
name = "issuance_sqlite"
path = "tests/issuance_sqlite.rs"
[[test]]
name = "storage_postgres"
path = "tests/storage_postgres.rs"
[[test]]
name = "storage_sqlite"
path = "tests/storage_sqlite.rs"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.ed25519-dalek]
version = "2"
features = ["rand_core"]
[dependencies.figment]
version = "0.10"
features = ["toml"]
[dependencies.hkdf]
version = "0.12"
[dependencies.rand]
version = "0.8"
features = ["getrandom"]
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"json",
]
optional = true
default-features = false
[dependencies.semver]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio-rustls",
"macros",
"uuid",
]
optional = true
default-features = false
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"cors",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.x25519-dalek]
version = "2"
features = ["static_secrets"]
[dependencies.zeroize]
version = "1"
features = ["derive"]
[dependencies.zlicenser-protocol]
version = "0.3.2"
[dev-dependencies.insta]
version = "1"
[dev-dependencies.mockall]
version = "0.13"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.testcontainers]
version = "0.23"
[dev-dependencies.testcontainers-modules]
version = "0.11"
features = ["postgres"]
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"test-util",
]