|
1 | | -# `sdk-grid-rust` |
| 1 | +# tfgrid-sdk-rust |
2 | 2 |
|
3 | | -Rust reimplementation of the ThreeFold `tfgrid-sdk-go` `grid-client`. |
| 3 | +Rust client library for building high-performance tools and services that interact with the ThreeFold Grid. It provides async Rust APIs for deployment management, chain interaction, and peer-to-peer messaging over the grid's Reliable Message Bus (RMB). |
4 | 4 |
|
5 | | -The crate has two layers: |
| 5 | +## What this is |
| 6 | + |
| 7 | +This repository contains a native Rust SDK for interacting with the ThreeFold Grid. The crate is organized in two layers: |
6 | 8 |
|
7 | 9 | - Pure Rust reconstruction/state helpers and deployer mocks for fast local tests. |
8 | 10 | - A `GridClient` that can create TFChain contracts and deploy workloads over RMB. |
9 | 11 |
|
10 | | -## Scope |
| 12 | +The SDK is intended as a foundation for Rust-based grid applications, system utilities, and any tooling that requires direct, high-performance interaction with grid nodes and on-chain state. |
| 13 | + |
| 14 | +## What this repository contains |
| 15 | + |
| 16 | +- `GridClient` and `GridClientConfig` — Core async client for chain and node operations. |
| 17 | +- Deployment builders and specs — `VmLightDeployment`, `VmDeployment`, `NetworkLightSpec`, `FullNetworkSpec`, `VolumeMountSpec`, `NodePlacement`, `NodeRequirements`, and related types. |
| 18 | +- Network presets — Built-in configurations for devnet, qanet, testnet, and mainnet. |
| 19 | +- Examples — Working examples for VM deployment, public VMs, network attachment, volume mounts, contract cancellation, and RMB token inspection. |
| 20 | +- Pure Rust test helpers — Mock deployers and state reconstruction utilities for local testing without live chain access. |
| 21 | + |
| 22 | +## Role in the stack |
| 23 | + |
| 24 | +The SDK operates at the client layer, bridging Rust applications to the grid's on-chain and node-level APIs. It connects to TFChain via substrate websockets for contract creation and twin lookup, to the grid proxy for node discovery, and to the RMB relay for encrypted command and control traffic to individual nodes. It is used by automation tools, system utilities, and any Rust service that needs to provision or manage grid workloads programmatically. |
| 25 | + |
| 26 | +## Relation to ThreeFold |
11 | 27 |
|
12 | | -The `GridClient` implementation in [mod.rs](/home/xmonader/wspace/geomind/sdk-grid-rust/src/grid_client/mod.rs) currently supports: |
| 28 | +This technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment. |
13 | 29 |
|
14 | | -- TFChain twin lookup and relay setup |
15 | | -- Node contract creation on TFChain |
16 | | -- RMB JWT signing and websocket transport |
17 | | -- RMB encrypted response handling |
18 | | -- `network-light` deployment |
19 | | -- `vm-light` deployment |
20 | | -- full `zmachine` deployment |
21 | | -- attached volume creation for VM workloads |
22 | | -- contract cancellation helpers |
| 30 | +## Ownership |
23 | 31 |
|
24 | | -The Rust-only deployment path is exercised by [deploy_small_vm.rs](/home/xmonader/wspace/geomind/sdk-grid-rust/examples/deploy_small_vm.rs), [deploy_custom_vm.rs](/home/xmonader/wspace/geomind/sdk-grid-rust/examples/deploy_custom_vm.rs), and [deploy_public_vm.rs](/home/xmonader/wspace/geomind/sdk-grid-rust/examples/deploy_public_vm.rs). |
| 32 | +This repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology. |
25 | 33 |
|
26 | 34 | ## Quick Start |
27 | 35 |
|
@@ -268,4 +276,4 @@ cargo check --examples |
268 | 276 | ## License |
269 | 277 |
|
270 | 278 | This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details. |
271 | | -Copyright (c) TFTech NV. |
| 279 | +Copyright (c) TF-Tech NV. |
0 commit comments