skynet_api 0.3.18

API for Skynet plugin.
Documentation
[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 }