feat: fai_dart_sdk scaffold
Dart package skeleton for the F∆I gRPC client. Used by F∆I Studio (Tier-2) and Tier-3 domain apps (DigiScout / J∆I / Scout). Public surface — HubClient, HubEndpoint — is committed as a typed stub so downstream apps can compile against it immediately. Generated proto bindings land in a follow-up commit once the codegen step (planned: tools/generate.sh wrapping protoc-gen-dart against ../fai_platform/proto) is wired in. Future Forgejo path: fai/dart-sdk. dart analyze: clean. dart test: 4/4. Signed-off-by: flemming-it <stefan.a.flemming@googlemail.com>
This commit is contained in:
commit
d405a6a9bd
9 changed files with 216 additions and 0 deletions
52
README.md
Normal file
52
README.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# fai_dart_sdk
|
||||
|
||||
gRPC client SDK for the F∆I Platform hub. Used by F∆I Studio
|
||||
(Tier-2 generic GUI) and any Tier-3 Dart/Flutter domain app
|
||||
(DigiScout, J∆I, Scout, …) that wants to talk to a running
|
||||
`fai serve`.
|
||||
|
||||
> **Status (2026-05-05):** scaffold. Public surface (`HubClient`,
|
||||
> `HubEndpoint`) is committed; generated proto bindings land in
|
||||
> a follow-up commit once the codegen step is wired in. Until
|
||||
> then, downstream apps can compile against the stub and Studio
|
||||
> uses mock data.
|
||||
|
||||
## Why a separate SDK package
|
||||
|
||||
The platform hub speaks gRPC. Each Dart consumer (Studio plus
|
||||
each Tier-3 domain app) would otherwise re-generate proto
|
||||
bindings independently and write near-identical client
|
||||
boilerplate. This package centralises that work:
|
||||
|
||||
- One source of generated proto bindings.
|
||||
- One typed `HubClient` wrapper with helpers.
|
||||
- One place to bump when the wire protocol evolves.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
fai_dart_sdk/
|
||||
├── lib/
|
||||
│ ├── fai_dart_sdk.dart # Public API
|
||||
│ └── src/
|
||||
│ ├── hub_client.dart # Typed client wrapper
|
||||
│ └── generated/ # protoc output (committed; pinned to platform tag)
|
||||
├── tools/
|
||||
│ └── generate.sh # Wraps `protoc --dart_out=...` against ../fai_platform/proto
|
||||
├── example/
|
||||
└── pubspec.yaml
|
||||
```
|
||||
|
||||
## Repo placement
|
||||
|
||||
Will be published as `fai/dart-sdk` on Forgejo
|
||||
(`git.flemming.ws`). The local directory `fai_dart_sdk/`
|
||||
follows the established `fai_platform/` layout convention.
|
||||
|
||||
## Versioning
|
||||
|
||||
Tracks the platform's wire-protocol version, not the platform
|
||||
binary version. As long as `fai:platform@1.x` is current, this
|
||||
SDK stays at `0.x` (will move to `1.0` once API stabilises);
|
||||
when `fai:platform@2.0` lands, a `2.x` SDK ships in parallel
|
||||
during the transition.
|
||||
Loading…
Add table
Add a link
Reference in a new issue