Skip to content

Consider migrating off deprecated serde_yaml #6

Description

@Zorlin

Context

serde_yaml (0.9.x) is used heavily throughout jetpack — 562 references across 34 files, leaning on the dynamic Value/Mapping API (not just from_str). The crate is now deprecated by its author (final release 0.9.34+deprecated).

Security status

  • No actionable advisory against serde_yaml itself. The one historical advisory, RUSTSEC-2018-0005 (DoS via self-referencing YAML alias), was fixed long ago and does not affect the 0.9.x line we are on. cargo audit does not flag it.
  • Deprecation is a maintenance signal, not a vulnerability. There is no urgency.

Successor landscape (all imperfect today)

  • serde_yml — the often-cited "official successor", but it is archived and carries RUSTSEC-2025-0068 (segfault). Do not migrate to this — it would trade a stable deprecated crate for an abandoned, vulnerable one.
  • serde_yaml_ng — a community fork, true drop-in (same serde_yaml:: module path via a Cargo.toml package = rename → zero source changes). No advisory, but its last release is ~2 years old.
  • No clearly-healthy, actively-maintained successor exists yet.

Recommendation

Leave serde_yaml in place for now (stable, not vulnerable) and evaluate a maintained successor when one is clearly healthy. If/when we migrate, serde_yaml_ng's package = rename makes it a zero-source-change mechanical switch — but that should wait until that crate (or a better option) is actively maintained again.

This issue tracks the decision; no code change is required today.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions