update MSRV to 1.74 everywhere except in internals
What changed, and why it matters
This commit is a routine maintenance change that raises the Minimum Supported Rust Version (MSRV) from Rust 1.63.0 to 1.74.0 across documentation, CI configuration, and package manifests. It does not change any code logic, cryptographic operations, or security behavior. It simply tells users and automated tooling that the project now requires a newer Rust compiler.
No security action required. Treat as a normal dependency/toolchain policy update. Users building from source should ensure their Rust toolchain is at least 1.74.0.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The commit updates rust-version fields in Cargo.toml files, README badges/text, clippy.toml, and the GitHub Actions CI matrix from 1.63.0 to 1.74.0. No source code, dependencies, features, or APIs are modified. The commit message explicitly notes this is a simple MSRV bump and that internals/Cargo.toml is intentionally left for a follow-up commit to avoid breaking cond_const!/rust_version! macros. There is no security patch or vulnerability fix present in the diff.
Changed components
CI workflow configurationREADME documentationCargo.toml rust-version metadataclippy.toml MSRV settingInspect captured patch +21 / −21
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index fd59ea50..fb1faf8b 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -88,7 +88,7 @@ jobs:
- name: "Select toolchain"
uses: dtolnay/rust-toolchain@stable
with:
- toolchain: "1.63.0"
+ toolchain: "1.74.0"
- name: "Set dependencies"
run: cp Cargo-${{ matrix.dep }}.lock Cargo.lock
- name: "Run test script"
diff --git a/README.md b/README.md
index 502094e0..7e68e0c7 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
<a href="https://github.com/rust-bitcoin/rust-bitcoin/blob/master/LICENSE"><img alt="CC0 1.0 Universal Licensed" src="https://img.shields.io/badge/license-CC0--1.0-blue.svg"/></a>
<a href="https://github.com/rust-bitcoin/rust-bitcoin/actions?query=workflow%3AContinuous%20integration"><img alt="CI Status" src="https://github.com/rust-bitcoin/rust-bitcoin/workflows/Continuous%20integration/badge.svg"></a>
<a href="https://docs.rs/bitcoin"><img alt="API Docs" src="https://img.shields.io/badge/docs.rs-bitcoin-green"/></a>
- <a href="https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html"><img alt="Rustc Version 1.63.0+" src="https://img.shields.io/badge/rustc-1.63.0%2B-lightgrey.svg"/></a>
+ <a href="https://blog.rust-lang.org/2023/11/16/Rust-1.74.0/"><img alt="Rustc Version 1.74.0+" src="https://img.shields.io/badge/rustc-1.74.0%2B-lightgrey.svg"/></a>
<a href="https://gnusha.org/bitcoin-rust/"><img alt="Chat on IRC" src="https://img.shields.io/badge/irc-%23bitcoin--rust%20on%20libera.chat-blue"></a>
<a href="https://github.com/model-checking/kani"><img alt="kani" src="https://github.com/rust-bitcoin/rust-bitcoin/workflows/Kani%20CI/badge.svg"></a>
</p>
@@ -76,7 +76,7 @@ For more information, please see [`CONTRIBUTING.md`](./CONTRIBUTING.md).
## Minimum Supported Rust Version (MSRV)
-This library should compile with any combination of features on **Rust 1.63.0**.
+This library should compile with any combination of features on **Rust 1.74.0**.
Use `Cargo-minimal.lock` to build the MSRV by copying to `Cargo.lock` and building.
diff --git a/addresses/Cargo.toml b/addresses/Cargo.toml
index 8e382529..f23df698 100644
--- a/addresses/Cargo.toml
+++ b/addresses/Cargo.toml
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies"]
keywords = ["bitcoin", "types"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/addresses/README.md b/addresses/README.md
index aaf09cc2..6e092a90 100644
--- a/addresses/README.md
+++ b/addresses/README.md
@@ -4,4 +4,4 @@ Types and logic required to receive bitcoin - i.e., bitcoin addresses.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
diff --git a/base58/Cargo.toml b/base58/Cargo.toml
index 105bf0c1..5dd0e783 100644
--- a/base58/Cargo.toml
+++ b/base58/Cargo.toml
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies", "encoding"]
keywords = ["bitcoin", "base58", "encode", "decode", "checksum"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/base58/README.md b/base58/README.md
index 4b530e94..8282e596 100644
--- a/base58/README.md
+++ b/base58/README.md
@@ -22,7 +22,7 @@ the checksum.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
## Licensing
diff --git a/bitcoin/Cargo.toml b/bitcoin/Cargo.toml
index b131d389..6a51f436 100644
--- a/bitcoin/Cargo.toml
+++ b/bitcoin/Cargo.toml
@@ -10,7 +10,7 @@ categories = ["cryptography::cryptocurrencies"]
keywords = [ "crypto", "bitcoin" ]
readme = "../README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
# If you change features or optional dependencies in any way please update the "# Cargo features" section in lib.rs as well.
diff --git a/chacha20_poly1305/Cargo.toml b/chacha20_poly1305/Cargo.toml
index daf43919..57b19bd2 100644
--- a/chacha20_poly1305/Cargo.toml
+++ b/chacha20_poly1305/Cargo.toml
@@ -9,7 +9,7 @@ categories = ["cryptography"]
keywords = ["crypto", "encryption"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/chacha20_poly1305/README.md b/chacha20_poly1305/README.md
index 259f8f6f..0b5c7388 100644
--- a/chacha20_poly1305/README.md
+++ b/chacha20_poly1305/README.md
@@ -6,4 +6,4 @@ This implementation is maintained by the rust-bitcoin community and has a focus
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
diff --git a/clippy.toml b/clippy.toml
index 47eac63c..70f47d05 100644
--- a/clippy.toml
+++ b/clippy.toml
@@ -1,4 +1,4 @@
-msrv = "1.63.0"
+msrv = "1.74.0"
too-many-arguments-threshold = 13
avoid-breaking-exported-api = false
doc-valid-idents = ["SegWit", "OpenSSL"]
diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml
index 7034cdf9..0255a4b3 100644
--- a/fuzz/Cargo.toml
+++ b/fuzz/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "bitcoin-fuzz"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
version = "0.0.1"
authors = ["Generated by fuzz/generate-files.sh"]
publish = false
diff --git a/hashes/Cargo.toml b/hashes/Cargo.toml
index fe55e9d7..8e6c6e36 100644
--- a/hashes/Cargo.toml
+++ b/hashes/Cargo.toml
@@ -10,7 +10,7 @@ categories = ["algorithms", "cryptography", "no-std"]
keywords = [ "crypto", "bitcoin", "hash", "digest" ]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/hashes/README.md b/hashes/README.md
index 6052b360..d5ac1941 100644
--- a/hashes/README.md
+++ b/hashes/README.md
@@ -9,7 +9,7 @@ since these are needed to display hashes anyway.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
## Contributions
diff --git a/io/Cargo.toml b/io/Cargo.toml
index 8d15cec4..d331125f 100644
--- a/io/Cargo.toml
+++ b/io/Cargo.toml
@@ -10,7 +10,7 @@ categories = ["no-std"]
keywords = [ "io", "no-std" ]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml
index a7b89af0..ceebbee0 100644
--- a/p2p/Cargo.toml
+++ b/p2p/Cargo.toml
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies"]
keywords = ["bitcoin", "peer-to-peer"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/p2p/README.md b/p2p/README.md
index 2670b996..53412797 100644
--- a/p2p/README.md
+++ b/p2p/README.md
@@ -4,7 +4,7 @@ This crate provides data types used in the Bitcoin peer-to-peer protocol.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
## Licensing
diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml
index 19e7bdb4..f273e6d1 100644
--- a/primitives/Cargo.toml
+++ b/primitives/Cargo.toml
@@ -11,7 +11,7 @@ categories = ["cryptography::cryptocurrencies", "no-std"]
keywords = ["bitcoin", "types"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/primitives/README.md b/primitives/README.md
index f6c32ef6..3255b8c4 100644
--- a/primitives/README.md
+++ b/primitives/README.md
@@ -10,7 +10,7 @@ They are primarily provided to support `rust-bitcoin`.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
## Licensing
diff --git a/units/Cargo.toml b/units/Cargo.toml
index c095cde6..64a2877a 100644
--- a/units/Cargo.toml
+++ b/units/Cargo.toml
@@ -9,7 +9,7 @@ categories = ["cryptography::cryptocurrencies"]
keywords = ["bitcoin", "newtypes", "no-std"]
readme = "README.md"
edition = "2021"
-rust-version = "1.63.0"
+rust-version = "1.74.0"
exclude = ["tests", "contrib"]
[features]
diff --git a/units/README.md b/units/README.md
index aed33e6f..f3430391 100644
--- a/units/README.md
+++ b/units/README.md
@@ -4,7 +4,7 @@ This crate provides basic Bitcoin numeric units such as `Amount`.
## Minimum Supported Rust Version (MSRV)
-This library should always compile with any combination of features on **Rust 1.63.0**.
+This library should always compile with any combination of features on **Rust 1.74.0**.
## Licensing
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.