🌍 Lupyd Rust Server Api

Structure Overview

The Lupyd Rust Server serves as the foundational **Social Graph** API. Unlike Firefly, which protects conversational tunnels, this backend drives your interactions, followers array, and rich-text timelines.

Below is the structured, exact mapping of all internal endpoints directly translated from its Hyper request handler architecture. It relies intensely on Protobuf serialization and JWT token structures.


Posts & Social Feed

POST/post

Arguments (Query)

None

Request Body

lupyd.post.CreatePostDetails

Returns

Post UUID (Plaintext)
GET/post

Arguments (Query)

?type=<u32>&users=<csv>&start=<ULID>&search=<str>&hashtag=<str>

Request Body

None

Returns

lupyd.post.FullPosts
GET/post/<post_id>

Arguments (Query)

ULID strictly in Path URL

Request Body

None

Returns

lupyd.post.FullPost
DELETE/post/<uuid1>/<uuid2>...

Arguments (Query)

UUIDs strictly in Path URL

Request Body

None

Returns

Plaintext (# deleted)

User Profiles & Social Graph

POST/user

Arguments (Query)

None

Request Body

lupyd.user.FullUser

Returns

Empty (201 Created) | 409 Conflict
PUT/user

Arguments (Query)

None

Request Body

lupyd.user.UpdateUserInfo

Returns

Empty (200 OK)
GET/user/<username>

Arguments (Query)

?users=<username1%2Cusername2>&offset=<u32>

Request Body

None

Returns

lupyd.user.User / lupyd.user.Users
PUT/relation

Arguments (Query)

?uname=<string>&relation=<Follow|Block>

Request Body

None

Returns

Empty (200 OK)
GET/relations

Arguments (Query)

?start_after=<ULID>

Request Body

None

Returns

lupyd.user.Relations
DELETE/user

Arguments (Query)

None

Request Body

None

Returns

Plaintext (Deletion Confirmed)

Interactions & Engagement

PUT/vote

Arguments (Query)

None

Request Body

lupyd.post.Votes

Returns

Plaintext (# rows updated)
PUT/savepost

Arguments (Query)

?id=<ULID>

Request Body

None

Returns

Empty (200 OK)
GET/saved_posts

Arguments (Query)

None

Request Body

None

Returns

List of UUIDs (content-type: uuids)
GET/hashtags

Arguments (Query)

None

Request Body

None

Returns

lupyd.post.PostHashtags
POST/report

Arguments (Query)

None

Request Body

lupyd.post.PostReport

Returns

Empty (200 OK)

Chat Connectivity Bridges

GET/chatkey/<username>

Arguments (Query)

None

Request Body

None

Returns

lupyd.chats.ChatKeys
PUT/chatkey

Arguments (Query)

None

Request Body

lupyd.chats.ChatKeys

Returns

Plaintext (# updated)
DELETE/chatkey

Arguments (Query)

None

Request Body

lupyd.chats.ChatKeys

Returns

Plaintext (# deleted)
GET/chats

Arguments (Query)

None

Request Body

None

Returns

lupyd.chats.ChatSessions
PUT/chat

Arguments (Query)

None

Request Body

lupyd.chats.ChatSession

Returns

Plaintext (# updated)
DELETE/chat

Arguments (Query)

None

Request Body

lupyd.chats.ChatSession

Returns

Plaintext (# deleted)

Real-time Notifications

GET/notifications

Arguments (Query)

None

Request Body

None

Returns

lupyd.notification.Notifications

Authorization Matrix

The entire backend handles access via the AuthenticatedToken struct. Certain routes like `/vote` or `/user` perform hard checks for permissions dynamically decoded from JWT arrays, avoiding latency checks entirely from the connected Auth0 pool.