[package]
edition = "2024"
rust-version = "1.88"
name = "openlark"
version = "0.16.0"
authors = ["ZoOL <zhooul@gmail.com>"]
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "飞书开放平台 Rust SDK - 企业级高覆盖率 API 客户端,极简依赖一条命令"
homepage = "https://github.com/foxzool/openlark"
documentation = "https://docs.rs/openlark"
readme = "README.md"
keywords = [
"feishu",
"lark",
"api",
"sdk",
"rust",
]
categories = [
"api-bindings",
"web-programming",
"development-tools",
]
license = "Apache-2.0"
repository = "https://github.com/foxzool/openlark"
resolver = "2"
[package.metadata.cargo-machete]
ignored = ["serde_repr"]
[features]
ai = [
"auth",
"dep:openlark-ai",
"openlark-client/ai",
]
analytics = [
"auth",
"dep:openlark-analytics",
"openlark-client/analytics",
]
application = [
"auth",
"dep:openlark-application",
"openlark-client/application",
]
auth = [
"dep:openlark-auth",
"openlark-client/auth",
]
cardkit = [
"auth",
"dep:openlark-cardkit",
"openlark-client/cardkit",
]
client = []
communication = [
"auth",
"dep:openlark-communication",
"openlark-client/communication",
]
default = ["auth"]
docs = [
"docs-ccm",
"docs-bitable",
]
docs-base = [
"docs-ccm",
"openlark-docs/base",
]
docs-bitable = [
"docs-ccm",
"openlark-docs/bitable",
]
docs-ccm = [
"auth",
"dep:openlark-docs",
"openlark-client/docs",
"openlark-docs/ccm-core",
"openlark-docs/v2",
"openlark-docs/v3",
]
docs-drive = [
"docs-ccm",
"openlark-docs/ccm-drive",
]
docs-explorer = ["docs-ccm"]
docs-full = [
"docs-ccm",
"docs-base",
"docs-bitable",
"docs-drive",
"openlark-docs/ccm",
"openlark-docs/baike",
"openlark-docs/minutes",
]
docs-sheets = ["docs-ccm"]
docs-sheets-v2 = [
"docs-ccm",
"openlark-docs/v2",
]
docs-sheets-v3 = [
"docs-ccm",
"openlark-docs/v3",
]
enterprise = [
"essential",
"security",
"hr",
"workflow",
]
essential = [
"auth",
"communication",
"docs",
]
full = [
"enterprise",
"ai",
"meeting",
"cardkit",
"webhook",
"helpdesk",
"mail",
"application",
"platform",
"analytics",
"user",
]
helpdesk = [
"auth",
"dep:openlark-helpdesk",
"openlark-client/helpdesk",
]
hr = [
"auth",
"dep:openlark-hr",
"openlark-client/hr",
]
mail = [
"auth",
"dep:openlark-mail",
"openlark-client/mail",
]
meeting = [
"auth",
"dep:openlark-meeting",
"openlark-client/meeting",
]
otel = ["openlark-core/otel"]
platform = [
"auth",
"dep:openlark-platform",
"openlark-client/platform",
]
security = [
"auth",
"dep:openlark-security",
"openlark-client/security",
]
user = [
"auth",
"dep:openlark-user",
"openlark-client/user",
]
webhook = ["dep:openlark-webhook"]
webhook-card = [
"webhook",
"openlark-webhook/card",
]
webhook-full = [
"webhook",
"webhook-card",
"webhook-signature",
]
webhook-signature = [
"webhook",
"openlark-webhook/signature",
]
websocket = ["openlark-client/websocket"]
workflow = [
"auth",
"dep:openlark-workflow",
"openlark-client/workflow",
]
[lib]
name = "open_lark"
path = "src/lib.rs"
[[example]]
name = "client_setup"
path = "examples/01_getting_started/client_setup.rs"
required-features = [
"auth",
"communication",
]
[[example]]
name = "communication_workflows"
path = "examples/01_getting_started/communication_workflows.rs"
required-features = [
"auth",
"communication",
"workflow",
]
[[example]]
name = "docs_helpers"
path = "examples/01_getting_started/docs_helpers.rs"
required-features = [
"auth",
"docs-bitable",
]
[[example]]
name = "docs_workflows"
path = "examples/01_getting_started/docs_workflows.rs"
required-features = [
"auth",
"docs-bitable",
]
[[example]]
name = "readme_quick_start"
path = "examples/01_getting_started/readme_quick_start.rs"
required-features = [
"auth",
"docs-bitable",
]
[[example]]
name = "test_debug"
path = "examples/test_debug.rs"
[[example]]
name = "websocket_echo_bot"
path = "examples/01_getting_started/websocket_echo_bot.rs"
required-features = [
"communication",
"websocket",
]
[[example]]
name = "workflow_api_example"
path = "examples/workflow_api_example.rs"
required-features = ["workflow"]
[[test]]
name = "contact_runtime_coverage"
path = "tests/contact_runtime_coverage.rs"
[[test]]
name = "websocket_runtime_coverage"
path = "tests/websocket_runtime_coverage.rs"
[[bench]]
name = "config_performance"
path = "benches/config_performance.rs"
harness = false
[dependencies.chrono]
version = "0.4.38"
features = ["serde"]
[dependencies.openlark-ai]
version = "0.16.0"
optional = true
[dependencies.openlark-analytics]
version = "0.16.0"
optional = true
[dependencies.openlark-application]
version = "0.16.0"
optional = true
[dependencies.openlark-auth]
version = "0.16.0"
optional = true
[dependencies.openlark-cardkit]
version = "0.16.0"
optional = true
[dependencies.openlark-client]
version = "0.16.0"
default-features = false
[dependencies.openlark-communication]
version = "0.16.0"
optional = true
[dependencies.openlark-core]
version = "0.16.0"
[dependencies.openlark-docs]
version = "0.16.0"
optional = true
[dependencies.openlark-helpdesk]
version = "0.16.0"
optional = true
[dependencies.openlark-hr]
version = "0.16.0"
optional = true
[dependencies.openlark-mail]
version = "0.16.0"
optional = true
[dependencies.openlark-meeting]
version = "0.16.0"
optional = true
[dependencies.openlark-platform]
version = "0.16.0"
optional = true
[dependencies.openlark-security]
version = "0.16.0"
optional = true
[dependencies.openlark-user]
version = "0.16.0"
optional = true
[dependencies.openlark-webhook]
version = "0.16.0"
optional = true
[dependencies.openlark-workflow]
version = "0.16.0"
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.serde_repr]
version = "0.1.19"
[dev-dependencies.clap]
version = "=4.5.50"
features = ["derive"]
[dev-dependencies.colored]
version = "2.1"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.dotenvy]
version = "0.15"
[dev-dependencies.env_logger]
version = "0.10"
[dev-dependencies.lark-websocket-protobuf]
version = "0.1"
[dev-dependencies.mockall]
version = "0.12"
[dev-dependencies.once_cell]
version = "1.19"
[dev-dependencies.proptest]
version = "=1.5.0"
[dev-dependencies.reqwest]
version = "0.13"
features = [
"json",
"multipart",
"rustls",
"stream",
"query",
]
default-features = false
[dev-dependencies.rstest]
version = "=0.19.0"
[dev-dependencies.tempfile]
version = "=3.10.1"
[dev-dependencies.test-log]
version = "0.2"
[dev-dependencies.tokio]
version = "1.38"
features = [
"rt",
"rt-multi-thread",
"macros",
"rt-multi-thread",
"macros",
]
[dev-dependencies.tracing-test]
version = "0.2"
[dev-dependencies.wiremock]
version = "0.6"
[lints.clippy]
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unused_extern_crates = "warn"
unused_import_braces = "warn"