This repository was archived by the owner on Jun 19, 2026. It is now read-only.
Commit 6b61775
committed
Add Push/Pull streaming model and TypeScript TCP library
Spec changes (v1.1.0):
- Replace Stream/Sink with Push/Pull type names
- Push<T> = caller→callee, Pull<T> = callee→caller
- Caller allocates ALL stream IDs (both directions)
- Response implicitly closes Pull streams
- Service definitions are from caller's POV
- Callee handlers have types flipped (Push↔Pull)
- Use peer-neutral terminology (caller/callee, not client/server)
New TypeScript library (typescript/tcp/):
- CobsFramed for COBS over TCP
- Connection with Hello exchange and message loop
- Server class for subject testing
Refactored subjects to use new libraries:
- Rust subject uses roam-tcp crate
- TypeScript subject uses @roam/tcp (294 LOC → 40 LOC)1 parent 2d17f7a commit 6b61775
22 files changed
Lines changed: 2042 additions & 667 deletions
File tree
- docs/content/spec
- python/generated/__pycache__
- rust
- roam-macros/src
- roam-session/src
- roam-tcp
- src
- subject-rust
- src
- spec/spec-tests/tests
- typescript
- generated
- subject
- tcp
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
| |||
0 commit comments