[package]
edition = "2024"
name = "scp-platform"
version = "0.1.0-beta.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Platform abstraction traits for SCP (Shared Context Protocol)"
homepage = "https://github.com/limn/scp"
readme = "README.md"
keywords = [
"protocol",
"platform",
"abstraction",
"storage",
]
categories = [
"os",
"cryptography",
]
license = "Apache-2.0"
repository = "https://github.com/limn/scp"
resolver = "2"
[features]
apple = [
"dep:rusqlite",
"dep:hex",
]
encrypting = [
"dep:aes-gcm",
"dep:rand",
]
file = [
"software_platform",
"dep:aes-gcm",
"dep:argon2",
]
filesystem = []
software_platform = [
"dep:ed25519-dalek",
"dep:x25519-dalek",
"dep:rand",
"dep:hmac",
"dep:sha2",
"dep:hkdf",
"dep:uuid",
]
sqlite = [
"dep:rusqlite",
"dep:hex",
]
sync = ["dep:rmp-serde"]
testing = ["software_platform"]
[lib]
name = "scp_platform"
path = "src/lib.rs"
[[test]]
name = "conformance_filesystem"
path = "tests/conformance_filesystem.rs"
[[test]]
name = "conformance_sqlite"
path = "tests/conformance_sqlite.rs"
[dependencies.aes-gcm]
version = "0.10"
optional = true
[dependencies.argon2]
version = "0.5"
optional = true
[dependencies.ed25519-dalek]
version = "2"
features = [
"rand_core",
"zeroize",
]
optional = true
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.hkdf]
version = "0.12"
optional = true
[dependencies.hmac]
version = "0.12"
optional = true
[dependencies.rand]
version = "0.8"
optional = true
[dependencies.rmp-serde]
version = "1"
optional = true
[dependencies.rusqlite]
version = "0.32"
features = ["bundled-sqlcipher"]
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.uuid]
version = "1"
features = ["v4"]
optional = true
[dependencies.x25519-dalek]
version = "2"
features = ["static_secrets"]
optional = true
[dependencies.zeroize]
version = "1"
features = ["derive"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tokio]
version = "1"
features = [
"full",
"macros",
"rt-multi-thread",
]
[lints.clippy]
cargo_common_metadata = "allow"
expect_used = "deny"
large_stack_arrays = "allow"
multiple_crate_versions = "allow"
panic = "deny"
todo = "deny"
too_many_arguments = "deny"
too_many_lines = "deny"
unimplemented = "deny"
unwrap_used = "deny"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1