Educational successor to NiSeullent/ryllis.
A tiny Twitter-style SNS that shows the gateware → middleware → servgate / VRoute path with a readable React client. No product branding — learning and local deploy only.
| Role (prod naming) | Process here | Default listen | Job |
|---|---|---|---|
| servgate / VRoute core | core/ |
TCP 127.0.0.1:19090 |
ZetProto + CQCQ trailer; SNS actions |
| middleware / edge | edge/ |
HTTP 127.0.0.1:18080 |
REST facade + octet-stream VRoute → TCP core |
| gateware | gateware/ |
HTTP 127.0.0.1:8080 |
SPA/static + /api / /vroute proxy |
| UI | web/ |
Vite :5173 (dev) |
Timeline create / like (REST or raw VRoute) |
Browser
→ gateware(:8080) [SPA + proxy]
→ edge(:18080) [middleware: REST or application/octet-stream]
→ core(:19090) [servgate: TCP ZetProto + CQCQ]
Needs Go 1.22+ and Node 20+ (pnpm or npm).
# terminal A — all three Go services + optional web build
./scripts/dev.sh
# or manually:
go run ./core
go run ./edge
cd web && npm install && npm run build
go run ./gateware -static ./gateware/staticVite-only UI (proxies to edge):
# core + edge already running
cd web && npm install && npm run devJSON body field action_type (same on REST and VRoute):
action_type |
Purpose |
|---|---|
get_posts_list |
{ limit, offset } → { posts, total, ... } |
create_post |
{ author, text } → { post } |
like_post |
{ post_id } → { post } |
REST shortcuts on edge:
GET /api/postsPOST /api/posts{ "author", "text" }POST /api/posts/{id}/like
Raw VRoute: POST / (or via gateware POST /vroute) with Content-Type: application/octet-stream, headers ZET-Header-ID, ZET-Client-Session-ID, VROUTE-ACTION-ID, body = JSON action.
See docs/PROTOCOL.md.
ryllis2/
proto/zetproto/ shared wire codec (request/response + CQCQ)
core/ servgate stand-in (TCP)
edge/ middleware stand-in (HTTP)
gateware/ static SPA host + API proxy
web/ React + Vite client
scripts/dev.sh
docs/PROTOCOL.md
Apache-2.0 © NiSeullent