consensus_encoding: Release stable 1.0.0
What changed, and why it matters
This commit is a routine release-management change. It bumps the version of the `bitcoin-consensus-encoding` crate from 0.2.0 to 1.0.0, adds a changelog, and updates downstream crates and lockfiles to use the new version. There are no code logic changes, bug fixes, or security patches in the diff.
No security action required. Treat as a normal release bookkeeping commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit is purely administrative: version bumps in Cargo.toml and lockfiles, plus a CHANGELOG.md update listing prior API changes. No source code, tests, or documentation outside the changelog were modified. The referenced pull requests in the changelog describe historical API changes, not changes introduced by this commit.
Changed components
bitcoin-consensus-encoding crate versioningworkspace Cargo.toml dependency declarationsCargo.lock filesInspect captured patch +29 / −9
diff --git a/Cargo-minimal.lock b/Cargo-minimal.lock
index 1100ed71..4ffe0a74 100644
--- a/Cargo-minimal.lock
+++ b/Cargo-minimal.lock
@@ -109,7 +109,7 @@ version = "0.0.0"
[[package]]
name = "bitcoin-consensus-encoding"
-version = "0.2.0"
+version = "1.0.0"
dependencies = [
"bitcoin-internals 0.5.0",
"hex-conservative 1.1.0",
diff --git a/Cargo-recent.lock b/Cargo-recent.lock
index 0881ae6b..bc93de0b 100644
--- a/Cargo-recent.lock
+++ b/Cargo-recent.lock
@@ -108,7 +108,7 @@ version = "0.0.0"
[[package]]
name = "bitcoin-consensus-encoding"
-version = "0.2.0"
+version = "1.0.0"
dependencies = [
"bitcoin-internals 0.5.0",
"hex-conservative 1.1.0",
diff --git a/bitcoin/Cargo.toml b/bitcoin/Cargo.toml
index a06ccafa..775b0826 100644
--- a/bitcoin/Cargo.toml
+++ b/bitcoin/Cargo.toml
@@ -31,7 +31,7 @@ bech32 = { version = "0.11.0", default-features = false, features = ["alloc"] }
crypto = { package = "bitcoin-crypto", path = "../crypto", version = "0.2.0", default-features = false, features = ["alloc"] }
hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.20.0", default-features = false, features = ["alloc", "hex"] }
key-expression = { package = "bitcoin-key-expression", path = "../key_expression", version = "0.0.0", default-features = false, features = ["alloc"] }
-encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "0.2.0", default-features = false, features = ["alloc"] }
+encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0", default-features = false, features = ["alloc"] }
hex = { package = "hex-conservative", version = "1.1.0", default-features = false, features = ["alloc"] }
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0", features = ["alloc", "hex"] }
io = { package = "bitcoin-io", path = "../io", version = "0.5.0", default-features = false, features = ["alloc", "hashes"] }
diff --git a/consensus_encoding/CHANGELOG.md b/consensus_encoding/CHANGELOG.md
index 5b2eab45..c4d76ffd 100644
--- a/consensus_encoding/CHANGELOG.md
+++ b/consensus_encoding/CHANGELOG.md
@@ -1,3 +1,23 @@
+# 1.0.0 - 2026-05-22
+
+Props to the team, our first `1.0` release from this repository. That
+is no small feat. Extra props to Nick, he kicked this crate off and
+worked hard on it. Props also to Kix for the overall design and
+original work, his efforts don't really get fair visibility in the git
+log. Poelstra, as usual patiently reviewing and merging.
+
+Team Rust Bitcoin - LFG.
+
+- Replace `bool` on `Decoder` trait with the `DecoderStatus` type (includes Encoder side too) [#6189](https://github.com/rust-bitcoin/rust-bitcoin/pull/6189)
+- Add checked decode functions [#6195](https://github.com/rust-bitcoin/rust-bitcoin/pull/6195)
+- Re-name main traits [#6028](https://github.com/rust-bitcoin/rust-bitcoin/pull/60428)
+- Change `EncodableByteIter` to `EncoderByteIter` [#6044](https://github.com/rust-bitcoin/rust-bitcoin/pull/6044)
+- Encoder/decoder improvements [#6004](https://github.com/rust-bitcoin/rust-bitcoin/pull/6004)
+- Re-name `flush_to` functions to `drain_to` [#6064](https://github.com/rust-bitcoin/rust-bitcoin/pull/6064)
+
+Please note `Encodable` is now `Encode` and `Decodable` is now `Decode` but the old names are still
+used for the old consensus encoding code in `rust-bticoin`.
+
# 0.2.0 - 2026-04-08
This release is breaking and causes our whole stack to have to be re-released ...
diff --git a/consensus_encoding/Cargo.toml b/consensus_encoding/Cargo.toml
index 34ced043..126d4f1a 100644
--- a/consensus_encoding/Cargo.toml
+++ b/consensus_encoding/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "bitcoin-consensus-encoding"
-version = "0.2.0"
+version = "1.0.0"
authors = ["Andrew Poelstra <apoelstra@wpsoftware.net>", "Nick Johnson <nick@yonson.dev>", "Tobin C. Harding <me@tobin.cc>"]
license = "CC0-1.0"
homepage = "https://rust-bitcoin.org/"
diff --git a/hashes/Cargo.toml b/hashes/Cargo.toml
index 0ccee82c..5a5b52e6 100644
--- a/hashes/Cargo.toml
+++ b/hashes/Cargo.toml
@@ -24,7 +24,7 @@ small-hash = []
[dependencies]
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0" }
-encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "0.2.0", default-features = false }
+encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0", default-features = false }
arbitrary = { version = "1.4.1", optional = true}
hex = { package = "hex-conservative", version = "1.1.0", default-features = false, optional = true }
diff --git a/io/Cargo.toml b/io/Cargo.toml
index ce5417d9..2e3b7845 100644
--- a/io/Cargo.toml
+++ b/io/Cargo.toml
@@ -21,7 +21,7 @@ alloc = ["encoding/alloc", "hashes?/alloc", "internals/alloc"]
[dependencies]
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0" }
-encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "0.2.0", default-features = false }
+encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0", default-features = false }
hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.20.0", default-features = false, optional = true }
diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml
index 93ad3ce1..deddadbc 100644
--- a/p2p/Cargo.toml
+++ b/p2p/Cargo.toml
@@ -20,7 +20,7 @@ arbitrary = ["dep:arbitrary", "primitives/arbitrary"]
serde = ["dep:serde", "hashes/serde"]
[dependencies]
-encoding = { package = "bitcoin-consensus-encoding", version = "0.2.0", path = "../consensus_encoding", features = ["alloc"], default-features = false }
+encoding = { package = "bitcoin-consensus-encoding", version = "1.0.0", path = "../consensus_encoding", features = ["alloc"], default-features = false }
hashes = { package = "bitcoin_hashes", version = "0.20.0", path = "../hashes", default-features = false }
network = { package = "bitcoin-network-kind", path = "../network", version = "0.1.0", default-features = false }
primitives = { package = "bitcoin-primitives", path = "../primitives", version = "0.102.0", features = ["hex", "alloc"], default-features = false }
diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml
index 11c5d9ae..95da6153 100644
--- a/primitives/Cargo.toml
+++ b/primitives/Cargo.toml
@@ -22,7 +22,7 @@ arbitrary = ["dep:arbitrary", "units/arbitrary"]
hex = ["dep:hex", "hashes/hex", "internals/hex"]
[dependencies]
-encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "0.2.0", default-features = false }
+encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0", default-features = false }
hashes = { package = "bitcoin_hashes", path = "../hashes", version = "0.20.0", default-features = false }
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0" }
units = { package = "bitcoin-units", path = "../units", version = "0.3.0", default-features = false, features = [ "encoding" ] }
diff --git a/units/Cargo.toml b/units/Cargo.toml
index cf9047eb..d7c5305e 100644
--- a/units/Cargo.toml
+++ b/units/Cargo.toml
@@ -21,7 +21,7 @@ alloc = ["internals/alloc", "serde?/alloc", "encoding?/alloc"]
[dependencies]
internals = { package = "bitcoin-internals", path = "../internals", version = "0.5.0" }
-encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "0.2.0", default-features = false, optional = true }
+encoding = { package = "bitcoin-consensus-encoding", path = "../consensus_encoding", version = "1.0.0", default-features = false, optional = true }
serde = { version = "1.0.195", default-features = false, features = ["derive"], optional = true }
arbitrary = { version = "1.4.1", optional = true }
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.