What changed, and why it matters
This commit creates a brand-new, empty placeholder crate named 'bitcoin-key-expression' inside the rust-bitcoin workspace. It contains no code, no logic, and no changes to existing behavior. It is purely a structural preparation step for future development.
No action required. This is a benign, non-security commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch adds a new workspace member ‘key_expression’ with version 0.0.0, an empty src/lib.rs gated behind the ‘alloc’ feature, and standard crate metadata files (Cargo.toml, README, CHANGELOG, rbmt.toml). No existing files are modified except workspace manifests and lock files to register the new crate. There is no functional code, no API surface, and no security-relevant change.
Changed components
workspace Cargo.tomlCargo-minimal.lockCargo-recent.lockkey_expression crate scaffoldingInspect captured patch +79 / −1
diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock
index 0c1cfa8d..1c5d29ef 100644
--- a/Cargo-minimal.lock
+++ b/Cargo-minimal.lock
@@ -124,6 +124,10 @@ dependencies = [
"bitcoin_hashes",
]
+[[package]]
+name = "bitcoin-key-expression"
+version = "0.0.0"
+
[[package]]
name = "bitcoin-network-kind"
version = "0.1.0"
diff --git a/Cargo-recent.lock b/Cargo-recent.lock
index cf257409..a34d2b93 100644
--- a/Cargo-recent.lock
+++ b/Cargo-recent.lock
@@ -123,6 +123,10 @@ dependencies = [
"bitcoin_hashes",
]
+[[package]]
+name = "bitcoin-key-expression"
+version = "0.0.0"
+
[[package]]
name = "bitcoin-network-kind"
version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
index 35fc0214..b591a1a0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
[workspace]
-members = ["addresses", "base58", "bip158", "bitcoin", "chacha20_poly1305", "consensus_encoding", "crypto", "fuzz", "hashes", "internals", "io", "network", "p2p", "primitives", "units"]
+members = ["addresses", "base58", "bip158", "bitcoin", "chacha20_poly1305", "consensus_encoding", "crypto", "fuzz", "hashes", "internals", "io", "key_expression", "network", "p2p", "primitives", "units"]
exclude = ["benches"]
resolver = "2"
diff --git a/key_expression/CHANGELOG.md b/key_expression/CHANGELOG.md
new file mode 100644
index 00000000..4ac809f0
--- /dev/null
+++ b/key_expression/CHANGELOG.md
@@ -0,0 +1,3 @@
+# 0.0.0 - Initial dummy release
+
+- Empty crate to reserve the name on crates.io
diff --git a/key_expression/Cargo.toml b/key_expression/Cargo.toml
new file mode 100644
index 00000000..df119c32
--- /dev/null
+++ b/key_expression/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+name = "bitcoin-key-expression"
+version = "0.0.0"
+authors = ["Andrew Poelstra <apoelstra@wpsoftware.net>"]
+license = "CC0-1.0"
+repository = "https://github.com/rust-bitcoin/rust-bitcoin"
+description = "Bitcoin key expression and deterministic derivation"
+categories = ["cryptography::cryptocurrencies"]
+keywords = ["bitcoin", "peer-to-peer", "cryptography"]
+readme = "README.md"
+edition = "2021"
+rust-version = "1.74.0"
+exclude = ["tests", "contrib"]
+
+[features]
+default = ["std"]
+std = ["alloc"]
+alloc = []
+
+[dependencies]
+
+[dev-dependencies]
+
+[package.metadata.docs.rs]
+all-features = true
+rustdoc-args = ["--cfg", "docsrs"]
+
+[lints]
+workspace = true
\ No newline at end of file
diff --git a/key_expression/README.md b/key_expression/README.md
new file mode 100644
index 00000000..8e71509b
--- /dev/null
+++ b/key_expression/README.md
@@ -0,0 +1,4 @@
+# Key expressions and deterministic derivation
+
+This library provides types and functionality for key expressions and deterministic key
+derivation.
diff --git a/key_expression/rbmt.toml b/key_expression/rbmt.toml
new file mode 100644
index 00000000..a44a78fd
--- /dev/null
+++ b/key_expression/rbmt.toml
@@ -0,0 +1,14 @@
+# Configuration for rbmt (Rust Bitcoin Maintainer Tools)
+
+[test]
+# Examples to run with specific features enabled.
+# Format: "example_name:feature1 feature2"
+examples = []
+
+# Features to test with the conventional `std` feature enabled.
+# Tests each feature alone with std, all pairs, and all together.
+features_with_std = []
+
+# Features to test without the `std` feature.
+# Tests each feature alone, all pairs, and all together.
+features_without_std = ["alloc"]
diff --git a/key_expression/src/lib.rs b/key_expression/src/lib.rs
new file mode 100644
index 00000000..9f88befe
--- /dev/null
+++ b/key_expression/src/lib.rs
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: CC0-1.0
+
+//! Bitcoin key expression and deterministic derivation
+//!
+//! This library provides types and functionality for key expressions and deterministic key
+//! derivation.
+
+// NB: This crate is empty if `alloc` is not enabled.
+#![cfg(feature = "alloc")]
+#![no_std]
+// Experimental features we need.
+#![doc(test(attr(warn(unused))))]
+// Coding conventions.
+#![warn(deprecated_in_future)]
+#![warn(missing_docs)]
+
+extern crate alloc;
+
+#[cfg(feature = "std")]
+extern crate std;
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.