Correct std feature-flagging

If a crate has std set, it should enable std for all dependencies in order to
let them properly select which algorithms to use. Some crates fallback to
slower/worse algorithms on no-std.

Also more aggressively sets default-features = false leading to a *10%*
reduction in the amount of crates coordinator builds.
This commit is contained in:
Luke Parker
2023-10-31 07:41:23 -04:00
parent 34bcb9eb01
commit 05dc474cb3
19 changed files with 185 additions and 135 deletions

View File

@@ -15,28 +15,29 @@ rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
# Macros
lazy_static = "1"
serde = { version = "1", features = ["derive"] }
lazy_static = { version = "1", default-features = false }
serde = { version = "1", default-features = false, features = ["std", "derive"] }
# Encoders
hex = "0.4"
bincode = "1"
serde_json = "1"
hex = { version = "0.4", default-features = false, features = ["std"] }
bincode = { version = "1", default-features = false }
serde_json = { version = "1", default-features = false, features = ["std"] }
# Libs
zeroize = "1"
rand_core = "0.6"
zeroize = { version = "1", default-features = false, features = ["std"] }
rand_core = { version = "0.6", default-features = false, features = ["std"] }
# Cryptography
transcript = { package = "flexible-transcript", path = "../crypto/transcript", features = ["recommended"] }
ciphersuite = { path = "../crypto/ciphersuite", features = ["ristretto"] }
schnorr-signatures = { path = "../crypto/schnorr" }
transcript = { package = "flexible-transcript", path = "../crypto/transcript", default-features = false, features = ["std", "recommended"] }
ciphersuite = { path = "../crypto/ciphersuite", default-features = false, features = ["std", "ristretto"] }
schnorr-signatures = { path = "../crypto/schnorr", default-features = false, features = ["std"] }
# Application
log = "0.4"
env_logger = "0.10"
log = { version = "0.4", default-features = false, features = ["std"] }
env_logger = { version = "0.10", default-features = false, features = ["humantime"] }
tokio = { version = "1", features = ["rt-multi-thread", "time", "macros"] }
# Uses a single threaded runtime since this shouldn't ever be CPU-bound
tokio = { version = "1", default-features = false, features = ["rt", "time", "macros"] }
serai-db = { path = "../common/db", optional = true }
@@ -44,8 +45,8 @@ serai-env = { path = "../common/env" }
serai-primitives = { path = "../substrate/primitives" }
jsonrpsee = { version = "0.16", features = ["server"], optional = true }
reqwest = { version = "0.11", features = ["json"] }
jsonrpsee = { version = "0.16", default-features = false, features = ["server"], optional = true }
reqwest = { version = "0.11", default-features = false, features = ["json"] }
[features]
binaries = ["serai-db", "serai-db/rocksdb", "jsonrpsee"]