Skip to content

Add ISerialization interface #52624

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

tsaichien
Copy link
Contributor

Summary:
Add a new optional interface ISerialization to JSI. This interface
contains two APIs to copy objects from one runtime to another runtime.

Two methods are introduced in this interface:

serialize will take in some JS value (represented by jsi::Value) and
serialize the object into an opaque Serialize object. The lifetime of
the serialized object is independent from the original object.

deserialize will take in the serialized object and deserialize it into
the runtime, returning the created JS object.

Note that objects can only be copied into another runtime instance of
the same type. For example, a serialized object produced by the Hermes
runtime can only be deserialized by another Hermes runtime.

Differential Revision: D76547681

Summary:
Add a new optional interface `ISerialization` to JSI. This interface
contains two APIs to copy objects from one runtime to another runtime.

Two methods are introduced in this interface:

`serialize` will take in some JS value (represented by `jsi::Value`) and
serialize the object into an opaque `Serialize` object. The lifetime of
the serialized object is independent from the original object.

`deserialize` will take in the serialized object and deserialize it into
the runtime, returning the created JS object.

Note that objects can only be copied into another runtime instance of
the same type. For example, a serialized object produced by the Hermes
runtime can only be deserialized by another Hermes runtime.

Differential Revision: D76547681
@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 16, 2025
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D76547681

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported p: Facebook Partner: Facebook Partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants