0.3.4-alpha.2
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/004-V0_3_4_REALTIME_TRANSPORT_WEBSOCKET_PLAN.md -->
|
||||
<!-- version: 1 -->
|
||||
<!-- version: 2 -->
|
||||
|
||||
# Plan 0.3.4 — transport realtime et baseline WebSocket
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
Plan actif créé pendant `0.3.4-alpha.1` à partir de l'archive taggée `v0.3.3`.
|
||||
|
||||
La tranche `alpha.1` migre d'abord la gouvernance de version vers `alpha.N / beta.N / rc.N`, audite la baseline et ferme les décisions d'ownership avant toute implémentation réseau lourde.
|
||||
La tranche `alpha.1` a été validée le 2026-09-21. La tranche active `alpha.2` matérialise maintenant le contrat transport-neutral sans dépendance runtime/backend ; le backend WebSocket reste réservé à `alpha.3`.
|
||||
|
||||
## Mission
|
||||
|
||||
@@ -166,7 +166,9 @@ sender.close() -> async Result
|
||||
receiver.receive() -> async Result<Message | Closed>
|
||||
```
|
||||
|
||||
L'implémentation Rust exacte est décidée dans `alpha.2`, avec priorité à une API statiquement dispatchée et sans allocation de futures imposée uniquement pour obtenir un trait object.
|
||||
`alpha.2` retient une API statiquement dispatchée fondée sur des associated types : `RealtimeConnection` produit un `Sender` et un `Receiver`, puis les opérations async exposent des futures associées GAT (`SendFuture`, `CloseFuture`, `ReceiveFuture`). Le contrat commun n'utilise ni `async-trait`, ni `Box<dyn Future>`, ni runtime concret.
|
||||
|
||||
Aucune borne `Send` n'est imposée aux futures par le contrat transport-neutral : un backend natif peut naturellement fournir des futures `Send`, tandis qu'un futur backend navigateur/WASM ne doit pas être rendu impossible par une contrainte de threading qui ne relève pas du transport abstrait.
|
||||
|
||||
Le contrat doit supporter lecture et écriture concurrentes après split. Il n'expose pas de runtime Tokio et ne crée aucun executor.
|
||||
|
||||
@@ -391,6 +393,7 @@ Aucune dépendance réseau n'est ajoutée.
|
||||
- créer `game-realtime-transport-lib` ;
|
||||
- implémenter message, receive/close, erreurs et split ;
|
||||
- conserver l'API sans Tokio/Tungstenite ;
|
||||
- retenir des futures associées GAT afin de préserver le dispatch statique sans box ni contrainte `Send` imposée au contrat ;
|
||||
- tests unitaires ciblés ;
|
||||
- README/USAGE uniquement si une valeur durable est démontrée par `DOC-CRATE-*`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user