[package] name = "edm-core" description = "Core types and traits for edm." version = "0.2.0" edition = "2021" license = "MIT" rust-version = "1.75.0" authors = ["安文 "] categories = ["asynchronous", "network-programming", "web-programming::http-server"] keywords = ["http", "web", "framework", "PDM", "PLM"] homepage = "https://gitee.com/plm-next/edm" repository = "https://gitee.com/plm-next/edm" documentation = "https://docs.rs/edm-core" readme = "README.md" [package.metadata.docs.rs] features = ["full", "runtime-tokio"] cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] rustdoc-args = ["--cfg", "docsrs"] [features] accessor = ["opendal"] accessor-azblob = ["accessor", "opendal/services-azblob"] accessor-azdls = ["accessor", "opendal/services-azdls"] accessor-cacache = ["accessor", "opendal/services-cacache"] accessor-cos = ["accessor", "opendal/services-cos"] accessor-dashmap = ["accessor", "opendal/services-dashmap"] accessor-dropbox = ["accessor", "opendal/services-dropbox"] accessor-fs = ["accessor", "opendal/services-fs"] accessor-ftp = ["accessor", "opendal/services-ftp"] accessor-gcs = ["accessor", "opendal/services-gcs"] accessor-gdrive = ["accessor", "opendal/services-gdrive"] accessor-ghac = ["accessor", "opendal/services-ghac"] accessor-http = ["accessor", "opendal/services-http"] accessor-ipfs = ["accessor", "opendal/services-ipfs"] accessor-ipmfs = ["accessor", "opendal/services-ipmfs"] accessor-memcached = ["accessor", "opendal/services-memcached"] accessor-memory = ["accessor", "opendal/services-memory"] accessor-mini-moka = ["accessor", "opendal/services-mini-moka"] accessor-moka = ["accessor", "opendal/services-moka"] accessor-mysql = ["accessor", "opendal/services-mysql"] accessor-obs = ["accessor", "opendal/services-obs"] accessor-onedrive = ["accessor", "opendal/services-onedrive"] accessor-oss = ["accessor", "opendal/services-oss"] accessor-persy = ["accessor", "opendal/services-persy"] accessor-postgresql = ["accessor", "opendal/services-postgresql"] accessor-redb = ["accessor", "opendal/services-redb"] accessor-redis = ["accessor", "opendal/services-redis"] accessor-s3 = ["accessor", "opendal/services-s3"] accessor-sled = ["accessor", "opendal/services-sled"] accessor-supabase = ["accessor", "opendal/services-supabase"] accessor-webdav = ["accessor", "opendal/services-webdav"] accessor-webhdfs = ["accessor", "opendal/services-webhdfs"] all-accessors = [ "accessor", "accessor-azblob", "accessor-azdls", "accessor-cacache", "accessor-cos", "accessor-dashmap", "accessor-dropbox", "accessor-fs", "accessor-ftp", "accessor-gcs", "accessor-gdrive", "accessor-ghac", "accessor-http", "accessor-ipfs", "accessor-ipmfs", "accessor-memcached", "accessor-memory", "accessor-mini-moka", "accessor-moka", "accessor-mysql", "accessor-obs", "accessor-onedrive", "accessor-oss", "accessor-persy", "accessor-postgresql", "accessor-redb", "accessor-redis", "accessor-s3", "accessor-sled", "accessor-supabase", "accessor-webdav", "accessor-webhdfs", ] all-auth = ["auth-oauth2", "auth-oidc", "auth-totp"] all-chatbots = ["chatbot", "chatbot-openai"] all-connectors = [ "connector", "connector-arrow", "connector-http", "connector-mysql", "connector-postgres", "connector-sqlite", ] all-locales = [ "locale", "locale-en", "locale-es", "locale-de", "locale-fr", "locale-zh", ] all-validators = [ "validator-credit-card", "validator-email", "validator-phone-number", "validator-regex", ] auth-oauth2 = ["dep:oauth2"] auth-oidc = ["dep:openidconnect"] auth-totp = ["dep:totp-rs"] chatbot = [] chatbot-openai = ["dep:async-openai", "chatbot"] connector = ["connector-http"] connector-arrow = ["dep:datafusion", "connector"] connector-http = ["connector"] connector-mysql = ["connector", "sqlx", "sqlx/mysql"] connector-postgres = ["connector", "sqlx", "sqlx/postgres"] connector-sqlite = ["connector", "sqlx", "sqlx/sqlite"] crypto-sm = ["dep:ctr", "dep:sm3", "dep:sm4"] default = ["runtime-tokio", "tls-rustls"] full = [ "all-accessors", "all-auth", "all-chatbots", "all-connectors", "all-locales", "all-validators", "metrics", "view", ] locale = ["random_word"] locale-en = ["locale", "random_word/en"] locale-es = ["locale", "random_word/es"] locale-de = ["locale", "random_word/de"] locale-fr = ["locale", "random_word/fr"] locale-zh = ["locale", "random_word/zh"] metrics = ["dep:metrics", "dep:metrics-exporter-prometheus"] runtime-async-std = ["sqlx?/runtime-async-std"] runtime-tokio = ["sqlx?/runtime-tokio"] tls-native = [ "opendal?/native-tls", "reqwest/native-tls", "sqlx?/tls-native-tls", "ureq/native-tls", ] tls-rustls = [ "opendal?/rustls", "reqwest/rustls-tls", "sqlx?/tls-rustls", ] validator = [] validator-credit-card = ["validator", "dep:card-validate"] validator-email = ["validator"] validator-phone-number = ["validator", "dep:phonenumber"] validator-regex = ["validator"] view = ["dep:minijinja"] view-minijinja = ["view", "dep:minijinja"] view-tera = ["view", "dep:tera"] [dependencies] aes-gcm-siv = "0.11.1" apache-avro = "0.16.0" base64 = "0.21.6" bytes = "1.5.0" cfg-if = "1.0" convert_case = "0.6.0" cookie = "0.18.0" cron = "0.12.0" csv = "1.3.0" dotenvy = "0.15.7" etag = "4.0.0" faster-hex = "0.9.0" fluent = "0.16.0" futures = "0.3.30" hkdf = "0.12.4" hmac = "0.12.1" http = "0.2.11" http-body = "0.4.6" intl-memoizer = "0.5.1" md-5 = "0.10.6" mime = "0.3.17" mime_guess = "2.0.4" multer = "3.0.0" once_cell = "1.19.0" parking_lot = "0.12.1" percent-encoding = "2.3.1" rand = "0.8.5" regex = "1.10.2" reqwest-middleware = "0.2.4" reqwest-retry = "0.3.0" reqwest-tracing = "0.4.6" rmp-serde = "1.1.2" rust_decimal = "1.33.1" ryu = "1.0.16" serde_qs = "0.12.0" serde_yaml = "0.9.30" sha2 = "0.10.8" sysinfo = "0.30.5" task-local-extensions = "0.1.4" toml = "0.8.8" tracing = "0.1.40" tracing-appender = "0.2.3" tracing-log = "0.2.0" url = "2.5.0" [dependencies.argon2] version = "0.5.2" features = ["std"] [dependencies.async-openai] version = "0.18.0" optional = true [dependencies.card-validate] version = "2.3.0" optional = true [dependencies.chrono] version = "0.4.31" features = ["serde"] [dependencies.ctr] version = "0.9.2" optional = true [dependencies.datafusion] version = "34.0.0" optional = true [dependencies.jwt-simple] version = "0.12.7" default-features = false features = ["pure-rust"] [dependencies.metrics] version = "0.22.0" optional = true [dependencies.metrics-exporter-prometheus] version = "0.13.0" optional = true [dependencies.minijinja] version = "1.0.11" optional = true features = ["debug", "loader"] [dependencies.oauth2] version = "4.4.2" optional = true [dependencies.opendal] version = "0.44.1" optional = true default-features = false features = ["layers-all"] [dependencies.openidconnect] version = "3.4.0" optional = true [dependencies.phonenumber] version = "0.3.3" optional = true [dependencies.random_word] version = "0.4.1" optional = true [dependencies.reqwest] version = "0.11.23" default-features = false features = [ "cookies", "gzip", "json", "multipart", "stream", ] [dependencies.serde] version = "1.0.195" features = ["derive"] [dependencies.serde_json] version = "1.0.111" features = ["raw_value"] [dependencies.sm3] version = "0.4.2" optional = true [dependencies.sm4] version = "0.5.1" optional = true [dependencies.smallvec] version = "1.11.2" features = ["serde"] [dependencies.sqlx] version = "0.7.3" optional = true features = [ "chrono", "rust_decimal", "uuid", ] [dependencies.tera] version = "1.19.1" optional = true [dependencies.totp-rs] version = "5.4.0" optional = true features = ["otpauth", "qr"] [dependencies.tracing-subscriber] version = "0.3.18" features = [ "env-filter", "json", "local-time", "parking_lot", ] [dependencies.unic-langid] version = "0.9.4" features = ["macros"] [dependencies.ureq] version = "2.9.1" features = ["json"] [dependencies.utoipa] version = "4.2.0" features = [ "non_strict_integers", "preserve_order", "preserve_path_order", "uuid", ] [dependencies.uuid] version = "1.6.1" features = [ "fast-rng", "serde", "v4", "v7", ] [dev-dependencies] anyhow = "1.0.79" arrayvec = "0.7.4" base64-simd = "0.8.0" criterion = "0.5.1" data-encoding = "2.4.0" libsm = "0.6.0" sm3 = "0.4.2" tinyvec = { version = "1.6.0", features = ["alloc"] } uuid-simd = "0.8.0" [[bench]] name = "criterion_main" harness = false