[package]
name = "skynet_api"
version = "0.3.18"
edition = "2021"
authors = ["MXWXZ <matrixwxz@gmail.com>"]
description = "API for Skynet plugin."
license = "GPL-3.0"
repository = "https://github.com/MXWXZ/skynet"
keywords = ["framework", "api", "ffi", "plugin"]
categories = ["api-bindings", "external-ffi-bindings"]
[features]
default = []
serde = [
"dep:serde",
"dep:serde-inline-default",
"dep:serde_repr",
"dep:serde_json",
"dep:serde_with",
]
database = ["dep:sea-orm", "actix-cloud-codegen/seaorm", "dep:chrono", "serde"]
extra-utils = ["dep:base64", "dep:infer"]
config = ["serde", "dep:validator", "actix-cloud/config"]
logger = ["serde", "actix-cloud/logger"]
permission = ["permission-item", "permission-checker"]
permission-item = ["dep:derivative", "dep:enum-map", "serde"]
permission-checker = ["permission-item", "dep:rhai", "dep:parking_lot"]
skynet = ["permission", "logger", "config"]
request = [
"request-pagination",
"request-condition",
"request-param",
"request-route",
"request-req",
]
request-pagination = [
"serde",
"dep:derivative",
"dep:validator",
"dep:async-trait",
"dep:sea-orm",
]
request-condition = ["request-pagination", "dep:enum-as-inner"]
request-param = ["request-condition", "actix-cloud/utils", "dep:paste"]
request-route = ["permission-checker", "actix-cloud/serde", "actix-cloud/csrf"]
request-req = [
"permission-item",
"actix-cloud/request",
"actix-cloud/traceid",
"actix-cloud/serde",
]
viewer = [
"permission",
"database",
"request-condition",
"dep:skynet_macro",
"dep:argon2",
"actix-cloud/memorydb",
"actix-cloud/utils",
"dep:base64",
]
service = ["service-result", "service-skynet"]
service-result = ["serde", "dep:derivative"]
service-skynet = ["service-result", "plugin-basic", "dep:ffi_rpc"]
plugin = ["plugin-basic", "plugin-request", "plugin-api"]
plugin-basic = [
"serde",
"dep:enum-as-inner",
"dep:thiserror",
"dep:bytestring",
"dep:bytes",
]
plugin-request = [
"plugin-basic",
"skynet",
"request-route",
"request-req",
"service-result",
"dep:ahash",
"actix-cloud/state",
"dep:ffi_rpc",
]
plugin-api = ["plugin-basic", "plugin-request"]
[dependencies]
anyhow = "1.0"
uuid = { version = "1.11", features = ["v4", "macro-diagnostics", "fast-rng"] }
skynet_macro = { version = "0.3", path = "../skynet_macro", optional = true }
ffi_rpc = { version = "0.5", optional = true }
actix-cloud = { version = "0.4", default-features = false, optional = true }
actix-cloud-codegen = { version = "0.2", optional = true }
actix-ws = { version = "0.3", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde-inline-default = { version = "0.2", optional = true }
serde_repr = { version = "0.1", optional = true }
serde_with = { version = "3.11", optional = true }
serde_json = { version = "1.0", optional = true }
validator = { version = "0.18", features = ["derive"], optional = true }
chrono = { version = "0.4", optional = true }
derivative = { version = "2.2", optional = true }
enum-map = { version = "2.7", features = ["serde"], optional = true }
parking_lot = { version = "0.12", optional = true }
base64 = { version = "0.22", optional = true }
infer = { version = "0.16", optional = true }
paste = { version = "1.0", optional = true }
async-trait = { version = "0.1", optional = true }
enum-as-inner = { version = "0.6", optional = true }
bytes = { version = "1.8", features = ["serde"], optional = true }
ahash = { version = "0.8", features = ["serde"], optional = true }
thiserror = { version = "1.0", optional = true }
bytestring = { version = "1.3", features = ["serde"], optional = true }
futures = { version = "0.3", optional = true }
argon2 = { version = "0.5", optional = true }
rhai = { version = "1.20", features = ["sync"], optional = true }
sea-orm = { version = "1.1", features = [
"sqlx-all",
"runtime-tokio-rustls",
"macros",
"debug-print",
], optional = true }