Support cloning type-erased protobuf values
@ppenna is already working on this.
Since Sep 15, 2026.
- Dominant language
- Rust
- Stars
- 1.9k
- Forks
- 238
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 100
Description
Tracking issue: MicroVM support and private snapshot restore.
Motivation
Transactional lifecycle operations may need to retain a saved value while another
operation consumes an equivalent value. Type-erased protobuf storage should expose
clear ownership and clone semantics so callers do not need to recover the concrete
message type or invent an application-specific serialization workaround.
Proposed Scope
- Provide clone support for the relevant type-erased protobuf value abstraction.
- Define how cloning preserves the payload and its ownership semantics, including
any required type bounds or restrictions. - Preserve protobuf encoding compatibility and existing conversion behavior.
- Keep lifecycle policy outside the serialization abstraction.
Acceptance Criteria
- An erased value and its clone encode equivalent protobuf payloads and
successfully round-trip through the supported decode path. - The clone remains usable after the original value is consumed or dropped.
- Tests cover representative owned payloads, including nested messages and
variable-length data, without accidental shared mutable state. - The API documents its clone semantics and applicable ownership constraints.
- Existing serialization tests continue to pass without a wire-format change.
Dependencies
No feature prerequisites. Fallible lifecycle transactions will consume this
capability in a separate PR.
Non-Goals
This issue does not define snapshot manifests, lifecycle rollback, or device
persistence policy.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.