lang-lib 1.2.0

A lightweight, high-performance localization library for Rust. Loads TOML language files, supports runtime locale switching, configurable paths, and automatic fallback chains.
# Release v1.0.1 — Portfolio Standard Patch
**Date:** 2026-05-20
**Compare:** `v1.0.0...v1.0.1`

## Summary

Portfolio standard compliance release. **No behavior changes.** Same API,
same performance characteristics, same correctness as `1.0.0`. Users do not
need to change any code to upgrade.

This patch isolates portfolio mechanical changes (REPS, dual licensing,
edition 2024, full lint discipline, `.dev/` framework) from the substantive
performance work planned for `1.1.0`.

The proximate trigger for cutting this patch was a CI failure: `1.0.0`
declared `edition = "2024"` alongside `rust-version = "1.75"`, but edition
2024 requires Rust ≥ 1.85. The Cargo manifest failed to parse on every CI
platform. This release fixes that incompatibility and aligns MSRV with the
declared edition.

## Added

- Dual licensing — `Apache-2.0 OR MIT`. Previously Apache-only.
  - `LICENSE` renamed to `LICENSE-APACHE`
  - `LICENSE-MIT` added
- `REPS.md` at repo root — canonical Rust Efficiency & Performance Standards
- `.dev/PROMPT.md` — project context, naming conventions, scope
- `.dev/DIRECTIVES.md` — engineering directives (performance, lock-free, REPS)
- `.dev/ROADMAP.md` — full roadmap through `1.2.0`
- `.dev/release/v1.0.1.md` — internal release notes for this patch
- `docs/release-notes/v1.0.1.md` — this file
- `rustfmt.toml`, `clippy.toml` — portfolio standard tooling configuration

## Changed

- `Cargo.toml`: `edition = "2021"``"2024"`
- `Cargo.toml`: `rust-version` declared as `"1.85"` (required by edition 2024)
- `Cargo.toml`: `license = "Apache-2.0"``"Apache-2.0 OR MIT"`
- `src/lib.rs`: lint configuration upgraded from
  `#![deny(warnings)] #![deny(clippy::all)] #![deny(missing_docs)]` to the
  full REPS discipline (deny `clippy::unwrap_used`, `clippy::expect_used`,
  `clippy::todo`, `clippy::unimplemented`, `clippy::print_stdout`,
  `clippy::print_stderr`, `clippy::dbg_macro`,
  `clippy::undocumented_unsafe_blocks`, `clippy::missing_safety_doc`; warn
  `clippy::pedantic`)
- `README.md`: MSRV badge `1.75+``1.85+`; install snippet bumped to
  `1.0.1`; dual-license footer

## Removed

- Nothing.

## Fixed

- Cargo manifest parse failure on CI: `rust-version = "1.75"` was
  incompatible with `edition = "2024"`. MSRV bumped to `1.85` to match.

## Performance

No changes. Performance characteristics are identical to `1.0.0`:

- `RwLock` contention on every translate call (will be eliminated in `1.1.0`)
- `String` allocation on every translate call (will be eliminated in `1.1.0`)

See `.dev/ROADMAP.md` for the `1.1.0` performance refactor plan.

## Compatibility

- **Source compatible** with `1.0.0` — no `t!` macro changes, no public API
  changes.
- **MSRV:** Rust `1.85` (required by edition 2024).
- **Edition:** 2024 (was 2021 in `1.0.0`).

## Migration from 1.0.0

```toml
# Cargo.toml — just bump the version
[dependencies]
lang-lib = "1.0.1"
```

No code changes are required. If your project still pins Rust < 1.85, bump
your toolchain — edition 2024 requires it.

## Next

`1.1.0` — Lock-free reads + zero-allocation hot path. `ArcSwap` replaces
`RwLock` on the translate path; `translate()` returns `Cow<'static, str>`
backed by `Arc<str>` storage. Verified by criterion benchmarks. See
`.dev/ROADMAP.md`.

---

**Full Changelog:** https://github.com/jamesgober/lang-lib/compare/v1.0.0...v1.0.1