openlark-docs 0.17.0

飞书开放平台云文档服务模块 - 文档、表格、知识库API (202 APIs, 100% 覆盖,不含旧版本)
Documentation
[package]
name = "openlark-docs"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
description = "飞书开放平台云文档服务模块 - 文档、表格、知识库API (202 APIs, 100% 覆盖,不含旧版本)"
keywords = ["feishu", "lark", "docs", "api", "sdk"]
categories = ["api-bindings", "web-programming"]

[lints]
workspace = true

[features]
default = []

# === 核心功能模块 ===
core = []

# === 业务域功能 ===
# 云文档协同 (174 APIs)
ccm-core = []
ccm-doc = ["ccm-core"]           # 文档处理
ccm-docx = ["ccm-core"]          # DOCX文档
ccm-drive = ["ccm-core"]         # 云盘文件
ccm-sheets-v3 = ["ccm-core"]     # 表格 v3
ccm-sheets = ["ccm-sheets-v3"]   # 表格 (默认v3)
ccm-wiki = ["ccm-core"]          # 知识库
ccm = [
    "ccm-core",
    "ccm-doc",
    "ccm-docx",
    "ccm-drive",
    "ccm-sheets",
    "ccm-wiki",
]

# 多维表格 (49 APIs)
bitable = ["core"]

# 基础服务 (0 APIs)
base = ["core"]

# 知识库 (27 APIs)
baike = []
wiki = ["ccm-wiki"]

# 语言服务 (14 APIs)
lingo = []

# 会议纪要 (4 APIs)
minutes = ["core"]

# 云文档管理 (1 API)
docs = ["ccm-doc"]

# 群公告管理 (19 APIs)
docx = ["ccm-docx"]

# === API版本支持 ===
v1 = ["core"]
v2 = ["v1"]
v3 = ["v2"]

# === 功能组合 ===
# 完整云文档功能
full = ["ccm", "bitable", "base", "baike", "minutes", "v3"]

# 向后兼容别名
cloud-docs = ["ccm", "bitable", "base"]
all-cloud-docs = ["full"]

[dependencies]
# 核心依赖
openlark-core = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
reqwest = { workspace = true }
chrono = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
once_cell = { workspace = true }

# 工具依赖
uuid = { workspace = true }
url = { workspace = true }
urlencoding = { workspace = true }
futures = { workspace = true }
futures-util = { workspace = true }
regex = { workspace = true }
rand = { workspace = true }
serde_repr = { workspace = true }
log = { workspace = true }
base64 = { workspace = true }


[dev-dependencies]
openlark-core = { workspace = true, features = ["testing"] }
tokio-test = "0.4"
wiremock = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }
mockall = { workspace = true }
insta = { workspace = true }

[package.metadata.cargo-machete]
ignored = ["anyhow", "async-trait", "base64", "futures", "futures-util", "once_cell", "rand", "regex", "reqwest", "thiserror", "url", "uuid"]