Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Add stable semantic signatures to Hyperlight-JS host-function manifests

Aberta
#339 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 6 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
javascript, rust
Domínio
backend

Direção de pesquisa

Start by tracing host-function registration, snapshot metadata persistence, and both persistent and in-memory restoration validation. Decide how the stable contract ID or versioned schema is represented and compared, then verify that contracted functions reject incompatible snapshots while functions without contracts retain name-only validation.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

lifecycle/needs-review
Problem

Hyperlight-JS snapshot compatibility currently validates only module and
function names.

Typed Rust callbacks are erased to a JSON bridge during registration, while
JavaScript callbacks are inherently dynamic. Hyperlight therefore sees only
the fixed CallHostJsFunction bridge signature and cannot verify that logical
functions such as database.query retain compatible argument and return
semantics.

Rust TypeId is process-local and type_name() is not a stable serialized
contract. Neither reliably describes Serde JSON representation.

Proposed solution

Allow host-function registration to include an explicit stable contract ID or
versioned schema, for example:

database.query: database.query/v1

Persist this identifier alongside each module/function name in snapshot
metadata and compare it during persistent and in-memory restoration.

Functions without a contract retain current name-only validation for backward
compatibility.

Linguagem predominante
Rust
Estrelas
13
Forks
5
Merge médio
6d 6h
PRs com merge (30d)
17

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de hyperlight-dev/hyperlight-js

Todas as issues de hyperlight-dev/hyperlight-js

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.