lark-channel
Lark/Feishu Channel SDK for Rust.
This repository is an early community scaffold for a Rust SDK that mirrors the role of the official Channel SDK family:
channel-sdk-gochannel-sdk-javachannel-sdk-pythonchannel-sdk-node
The first target is to support agent/bot bridges such as lark-coding-agent-bridge-rs: inbound events, normalized messages, streaming replies, media downloads, and interactive card callbacks.
Status
Experimental. The crate currently contains the public module skeleton, shared data types, and an early OpenAPI foundation for app and tenant access-token management.
Planned Modules
config: app id/secret, Feishu/Lark domain selection, SDK source metadataevent: normalized inbound eventsmessage: normalized messages and outbound contentcard: interactive card primitivesmedia: resource descriptors and download/upload helpersclient: async client trait for transport implementationsopenapi: access-token cache, low-level OpenAPI response handling, and default reqwest transport
Crate Name
The repository is named channel-sdk-rust to match LarkSuite's official SDK naming style. The published Rust crate is lark-channel, and the Rust library target is lark_channel, so users can import it as:
= "0.1"
use ;
Examples
Examples live in examples.
The token example verifies the current OpenAPI foundation by requesting app and tenant access tokens:
The example reads credentials from environment variables. Applications using this SDK may load those values from their own configuration system, secret manager, or local .env workflow before constructing ChannelConfig.
Roadmap
See docs/roadmap.md for the development plan.
The next milestones are:
- App access-token management and OpenAPI HTTP primitives.
- Outbound text messaging and reply helpers.
- WebSocket event connection and event acknowledgement.
- Message normalization aligned with
channel-sdk-nodewhere practical. - Card, streaming reply, and media helpers.