Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Unreal SDK: no way to set confirmed reads on the connection (Rust SDK has with_confirmed_reads)

Abierto Apto para principiantes
#6,328 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
84/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp, unreal-engine

Línea de trabajo

Comienza con UDbConnectionBuilderBase::Build en sdks/unreal/src/SpacetimeDbSdk/Private/Connection/DbConnectionBuilder.cpp, usando la implementación de Rust en sdks/rust/src/websocket.rs y db_connection.rs como referencia de comportamiento. Añade la opción tanto al constructor de C++ como al expuesto a Blueprint, manteniendo la omisión cuando no esté configurada y serializando un booleano explícito cuando esté configurada. Hecho significa que confirmed=true o confirmed=false se añade correctamente y está cubierto por las pruebas relevantes del SDK de Unreal.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

SpacetimeDB 2.12.0, Unreal SDK from sdks/unreal/src/SpacetimeDbSdk at v2.12.0, UE 5.8.3.

The Rust SDK lets the client choose the read mode explicitly: DbConnectionBuilder::with_confirmed_reads(bool) adds &confirmed=true|false to the subscribe URL (sdks/rust/src/websocket.rs, db_connection.rs). The Unreal SDK has no equivalent: UDbConnectionBuilderBase::Build (Private/Connection/DbConnectionBuilder.cpp) always builds

<uri>/v1/database/<name>/subscribe?compression=<Gzip|None>

so the mode is whatever the server default is for the protocol. With v2.bsatn.spacetimedb (which the Unreal SDK uses, Websocket.cpp) the server default is confirmed = true (client-api/src/routes/subscribe.rs, DEFAULT_CONFIRMED_READS), which is what we want, but we can't pin it from the client.

Why it matters for us: our game logic treats "reducer reply received" as "the transaction is durable" (inventory, trades, store purchases are only shown as done after the reply). If the default ever changes, or a different protocol version is negotiated, Unreal clients would silently switch to replies-before-fsync, while our Rust tools keep true explicitly.

Request: add WithConfirmedReads(bool) to UDbConnectionBuilder (and the Blueprint builder), appending &confirmed=true|false only when it was set, mirroring the Rust SDK. We can send a PR if that helps.

Workaround today: none without patching the SDK (the database name is interpolated into the path, so a query parameter can't be injected cleanly). We rely on the v2 default and check it in our load tests.

Lenguaje dominante
Rust
Estrellas
25.3k
Forks
1.1k
Merge medio
3 d 9 h
PR fusionados (30 d)
69

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de clockworklabs/SpacetimeDB

Todos los issues de clockworklabs/SpacetimeDB

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.