Repository navigation
Commit 0df55a0
committed
docs(stack-encrypt): a guide to building a language integration
Nothing explained how to build a binding on Stack Encrypt. The knowledge
was spread over the dynamic module's docs, the Go guest's module docs,
stack-guest-abi, ADR-0007 and ADR-0008, and an author had to reconstruct
it from the Go SDK. A Python integration has started without it.
The guide ships in the crate docs as `dynamic::guide`, included from
`docs/language-integration.md`, so it renders on docs.rs beside the API
it describes. It is ordered contract before API: the binding versus the
language SDK; native versus WebAssembly; the three operations and the
Go guest's exports; the plan grammar; control messages versus plaintext,
both frames, neither a tree; the plaintext hygiene rules and the heap
tests that prove them; the step loop, the token import and the
cancellation contract; the status table and se_last_error; versioning
and the frozen stored-rows fixtures; one int32 stored as EQL v4
IntegerEq, traced through encrypt, query and decrypt with the bytes from
the committed fixtures; and a checklist for a new binding. The frame
format stays in vitaminc-aead-frame's documentation and is linked, not
restated.
The frame bytes in the worked example are asserted by doctests, so the
guide fails the build if the engine's bytes move. The stored row and the
query term are quoted from fixtures the Go SDK and Rust both read, named
by file and key.
Linked from the crate docs, the SDK design principles and the Go SDK's
README.
Closes #1254.1 parent a840933 commit 0df55a0
6 files changed
Lines changed: 641 additions & 0 deletions
File tree
- docs
- languages/golang/encrypt
- packages/stack-encrypt
- docs
- src
- dynamic
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
588 | 588 | | |
589 | 589 | | |
590 | 590 | | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
591 | 595 | | |
592 | 596 | | |
593 | 597 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
12 | 23 | | |
13 | 24 | | |
14 | 25 | | |
| |||
0 commit comments