Skip to content

Commit b86d990

Browse files
committed
Prepare 0.5.0 release
1 parent fa6da38 commit b86d990

11 files changed

Lines changed: 55 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## 0.5.0-alpha.0 - Unreleased
3+
## 0.5.0 - 2026-05-14
44

55
- Started the next development cycle after the `0.4.1` release.
66
- Added AVX-512 VBMI candidate detection to runtime backend reports while

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "base64-ng"
3-
version = "0.5.0-alpha.0"
3+
version = "0.5.0"
44
edition = "2024"
55
rust-version = "1.95"
66
license = "MIT OR Apache-2.0"

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ The crate starts conservative: a small scalar implementation, strict RFC 4648 be
66

77
## Current Status
88

9-
The current public release is `0.4.1`. The `main` branch now tracks the
10-
`0.5.0-alpha.0` development cycle.
9+
The current public release is `0.5.0`.
1110

1211
Implemented now:
1312

@@ -42,7 +41,7 @@ Planned behind admission evidence:
4241

4342
```toml
4443
[dependencies]
45-
base64-ng = "0.4.1"
44+
base64-ng = "0.5.0"
4645
```
4746

4847
The crate is dual-licensed:
@@ -67,7 +66,7 @@ Disable defaults for embedded or freestanding use:
6766

6867
```toml
6968
[dependencies]
70-
base64-ng = { version = "0.4.1", default-features = false }
69+
base64-ng = { version = "0.5.0", default-features = false }
7170
```
7271

7372
## Example

docs/MIGRATION.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ After:
1919

2020
```toml
2121
[dependencies]
22-
base64-ng = "0.4.1"
22+
base64-ng = "0.5.0"
2323
```
2424

2525
For embedded or freestanding use:
2626

2727
```toml
2828
[dependencies]
29-
base64-ng = { version = "0.4.1", default-features = false }
29+
base64-ng = { version = "0.5.0", default-features = false }
3030
```
3131

3232
## Engine Mapping
@@ -152,7 +152,7 @@ Enable the `stream` feature for `std::io` wrappers:
152152

153153
```toml
154154
[dependencies]
155-
base64-ng = { version = "0.4.1", features = ["stream"] }
155+
base64-ng = { version = "0.5.0", features = ["stream"] }
156156
```
157157

158158
```rust

docs/PLAN.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,47 @@ Phase 3:
228228
- Release-gate hardening for packaged evidence, reserved feature placeholders,
229229
unsafe/SIMD boundary validation, and cross-target SIMD feature bundles.
230230

231+
### v0.6
232+
233+
- Expand Kani proof coverage for length helpers, in-place decode bounds, and
234+
selected scalar decoder invariants when Kani supports the pinned Rust
235+
toolchain.
236+
- Strengthen Miri coverage for scalar, in-place, clear-tail, and stream state
237+
machine behavior that Miri can execute practically.
238+
- Add a documented constant-time verification plan for the `ct` module,
239+
including generated-code review requirements before making cryptographic
240+
constant-time claims.
241+
- Stabilize fuzz corpus handling and document which corpus inputs are accepted
242+
into the repository.
243+
244+
### v0.7
245+
246+
- Replace inactive SIMD encode prototypes with real candidate implementations
247+
only when scalar differential tests, fuzz evidence, target-feature checks,
248+
unsafe inventory updates, and benchmark evidence are complete.
249+
- Keep scalar as the default fallback and require runtime backend policy tests
250+
for every admitted accelerated backend.
251+
- Publish per-architecture benchmark evidence for any performance claim,
252+
including CPU, OS, Rust version, command, and raw output.
253+
254+
### v0.8
255+
256+
- Consider admitting async streaming wrappers only after `docs/ASYNC.md`
257+
requirements are met, including dependency review, cancellation behavior,
258+
drop cleanup behavior, chunk-boundary tests, and release evidence with the
259+
async feature enabled.
260+
- If async remains unjustified, keep `tokio` inert and spend this milestone on
261+
stream ergonomics, documentation, and additional framed-protocol tests.
262+
263+
### v0.9
264+
265+
- Release-candidate hardening for `v1.0`: API audit, documentation audit,
266+
migration guide refresh, fuzz corpus review, benchmark review, and release
267+
evidence rehearsal.
268+
- Decide whether constant-time decode is formally guaranteed with supporting
269+
evidence or explicitly documented as constant-time-oriented only.
270+
- Freeze dependency policy and feature admission rules for `v1.0`.
271+
231272
### v1.0
232273

233274
- Kani proofs complete for scalar in-place decode.

docs/SIMD.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# SIMD Admission Policy
22

3-
`base64-ng` is intentionally scalar-only in the `0.5.0-alpha.0` development
4-
cycle. The crate uses
3+
`base64-ng` is intentionally scalar-only in the `0.5.0` release. The crate uses
54
`#![deny(unsafe_code)]` and permits `allow(unsafe_code)` only in the private
65
`src/simd.rs` boundary. The `simd` feature remains reserved until
76
architecture-specific code has enough evidence to justify enabling it.

fuzz/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

fuzz/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cargo-fuzz = true
99

1010
[dependencies]
1111
base64 = "0.22.1"
12-
base64-ng = { path = "..", version = "0.5.0-alpha.0", features = ["alloc", "std", "stream"] }
12+
base64-ng = { path = "..", version = "0.5.0", features = ["alloc", "std", "stream"] }
1313
libfuzzer-sys = "0.4"
1414

1515
[[bin]]

perf/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)