v0.2.6-rel.001

This commit is contained in:
2026-08-22 14:16:31 +02:00
parent 79fee574d9
commit 3c9c1d1349
32 changed files with 428 additions and 279 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/005-DEPENDENCY_GRAPH.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Graphe de dépendances KSP
@@ -33,7 +33,7 @@ Les applications/jobs/workers/scenarios composent les implementations concrètes
Workers continus et jobs bornés gardent des lifecycle APIs séparées.
# Fondations N1
## Fondations N1
```text
ksp-core-lib
@@ -50,7 +50,7 @@ ksp-config-lib
`ksp-config-lib` est l'unique propriétaire des documents Config, `.env` et variables KSP/KSPB.
# Transport on-chain
## Transport on-chain
```text
ksp-onchain-transport-lib
@@ -83,7 +83,7 @@ ksp-onchain-transport-lib
Cette direction est analogue à Config -> Logging : Config exprime/adapte la configuration, le composant reste propriétaire de ses contrats runtime.
## HTTP
### HTTP
```text
HttpEndpointConfig
@@ -96,7 +96,7 @@ JSON-RPC read/write methods
Le pool HTTP sélectionne des endpoints/clients logiques selon rôles/capabilities/priorités/limites.
## WebSocket
### WebSocket
```text
WsEndpoint
@@ -110,11 +110,11 @@ Plusieurs sessions sur une même URL sont autorisées. Un scheduler/pool automat
Helius LaserStream WebSocket étend le même moteur/session ; il ne duplique pas le client standard.
## Yellowstone
### Yellowstone
Yellowstone gRPC est un backend standard/provider-neutral. Les adapters/capabilities Helius/Triton/ERPC/Chainstack/Shyft peuvent venir plus tard sans redéfinir le contrat générique.
# Transport off-chain
## Transport off-chain
```text
ksp-offchain-transport-lib
@@ -127,7 +127,7 @@ Aucune `ksp-offchain-transport-api` globale n'est prévue.
La première surface est un reader de prix ; metadata HTTP/IPFS/Arweave et autres besoins sont ajoutés lorsqu'ils deviennent concrets.
# Wallet
## Wallet
```text
ksp-wallet-lib
@@ -159,7 +159,7 @@ Le Wallet stocke/ouvre/signe. Il ne décide pas si une dépense est autorisée.
`WalletPolicy` historique migre conceptuellement vers execution policy, pas vers `ksp-wallet-lib`.
# Interface / wire
## Interface / wire
```text
ksp-interface-lib
@@ -182,7 +182,7 @@ ksp-interface-lib -X-> Store
ksp-interface-lib -X-> Wallet
```
# Program
## Program
```text
ksp-program-api
@@ -206,7 +206,7 @@ ksp-program-<name>-lib
Elle n'a pas besoin de dépendre de `ksp-program-lib`.
# Execution / Policy
## Execution / Policy
```text
ksp-execution-policy-api
@@ -229,7 +229,7 @@ ksp-execution-lib -X-> ksp-program-lib
Une petite policy spécifique peut vivre dans une crate scenario/orchestrateur. Une ou plusieurs bibliothèques de policies communes ne sont créées qu'après démonstration d'une réutilisation réelle.
# Data plane durable
## Data plane durable
```text
D1 RAW
@@ -238,7 +238,7 @@ D1 RAW
-> D4 SPECIALIZED
```
## RAW
### RAW
```text
transport model
@@ -253,7 +253,7 @@ ksp-store-api
ksp-store-lib
```
## CORE
### CORE
```text
D1 RAW
@@ -275,7 +275,7 @@ RAW -> CORE -X-> ksp-program-lib
RAW -> CORE -X-> ksp-materializer-api
```
## DECODE
### DECODE
```text
D2 CORE
@@ -293,7 +293,7 @@ ksp-materializer-api implementation
D3 DECODE / generic journal
```
## SPECIALIZED
### SPECIALIZED
```text
D3 DECODE
@@ -305,7 +305,7 @@ specialized projector/materializer
D4 SPECIALIZED
```
# Materialization
## Materialization
```text
ksp-materializer-api
@@ -319,7 +319,7 @@ ksp-materializer-lib
Program/Materializer ne dépendent pas du Store backend.
# Store
## Store
```text
ksp-store-api
@@ -341,7 +341,7 @@ ksp-store-lib -X-> transport/program/materializer
La première release Store (`0.3.1`) est RAW-only ; les contrats CORE/DECODE/SPECIALIZED sont ajoutés avec leurs couches.
# Jobs
## Jobs
```text
ksp-job-api
@@ -361,7 +361,7 @@ ksp-job-backfill
Il remplit RAW et ne décode rien.
# Workers
## Workers
```text
ksp-worker-api
@@ -376,9 +376,9 @@ RAW worker et CORE worker sont introduits à la fin de leur couche respective, l
Les workers DECODE/SPECIALIZED sont introduits avec les groupes Program concernés plutôt que tous anticipés en bloc.
# Apps
## Apps
## Wallet Desk
### Wallet Desk
```text
ksp-app-wallet-desk
@@ -390,7 +390,7 @@ ksp-app-wallet-desk
L'app compose ; elle ne déplace pas Config/Wallet/Transport dans Tauri. Les handles `WalletView`/`WalletOwner` restent côté Rust, et le frontend ne reçoit que des DTOs sûrs. Config fournit la racine/profil Wallet et le profil Transport. Les passwords Wallet ne deviennent jamais des champs des documents JSON Config ; ils peuvent être saisis éphémèrement frontend -> Rust ou provenir plus tard de secrets process/`.env` `KSP_SECRET_WALLET_PASS_*` possédés exclusivement par Config. Le secret Solana ne devient jamais une valeur Config ni un DTO frontend.
## Price Desk
### Price Desk
```text
price desk
@@ -399,7 +399,7 @@ price desk
-> ksp-logging-lib
```
## Backfill app
### Backfill app
```text
backfill app
@@ -409,7 +409,7 @@ backfill app
-> ksp-logging-lib
```
## Market Desk
### Market Desk
```text
ksp-app-market-desk
@@ -420,7 +420,7 @@ ksp-app-market-desk
Elle consomme les projections SPECIALIZED normalisées ; elle ne dépend pas directement des bibliothèques protocole externes.
# Scenarios
## Scenarios
```text
ksp-scenario-<domain>-lib
@@ -437,7 +437,7 @@ Une policy Devnet petite et spécifique peut être implémentée dans la crate s
L'app demo correspondante reste un adapter UI mince.
# Progression verticale Program
## Progression verticale Program
À partir de DECODE :
@@ -454,7 +454,7 @@ wire
Les satellites nécessaires restent dans le même groupe protocolaire.
# Contrôle des cycles
## Contrôle des cycles
Le sens général reste descendant :
@@ -476,7 +476,7 @@ job-api
Les applications/orchestrateurs réalisent les compositions explicites ; aucune boucle inverse ne doit être créée pour éviter une conversion au bon niveau.
# Dépendances non retenues actuellement
## Dépendances non retenues actuellement
```text
ksp-api-lib