Feature: Rust SDK (Base Protocol & Identity) #60
Labels
No labels
area:api
area:core
area:docs
area:infra
area:ux
dependencies
documentation
duplicate
good first issue
help wanted
invalid
question
rust
status:complete
status:partial
status:planned
type:bug
type:design
type:feature
type:infra
type:refactor
type:refactor
type:research
type:ux
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
icub3d/decentcom#60
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Migrated from GitHub issue icub3d/decentcom#85
Original Author: @icub3d
Original Date: 2026-04-18T03:56:20Z
Feature: Rust SDK (Base Protocol & Identity)
Overview
Develop a foundational Rust SDK crate that provides a high-level, typed interface for interacting with the decentcom protocol. This SDK will handle identity management (Ed25519), authentication flows, REST API interactions, and low-level Gateway (WebSocket) connectivity.
This crate is intended to be the base layer for the Bot SDK (#76) and other Rust-based clients, ensuring protocol consistency and reducing boilerplate.
Background
Currently, the Tauri client (#client) and the server (#server) share types via the
shared/crate, but the logic for authentication, signing, and API interaction is implemented separately (and sometimes in JS/TS in the frontend). A dedicated Rust SDK allows any Rust application—whether a bot, a CLI tool, or a desktop client—to speak the decentcom protocol correctly and securely.Requirements
sdk/rust/(internal name:decentcom-sdk).shared::gateway::Opevents).tokio,reqwest, andtokio-tungstenite.Design
Component Changes
sdk/rust/.shared/.API Sketch
Task List
Phase 1: Identity & Auth
sdk/rust/crate.AuthClientfor challenge-response flow.Phase 2: REST Client
RestClientwith middleware for auth headers.Phase 3: Gateway
GatewayClientusingtokio-tungstenite.Test List
Open Questions
shared/or stay separate? (Recommendation: Keepshared/for pure types, SDK for logic). Resolved: keepingshared/for pure wire types; SDK carries the logic and its own request/response wrappers.fetch_media/media_url) now; multipart upload helper is deferred to a follow-up.Dependencies