[package]
edition = "2024"
name = "raisfast"
version = "0.2.23"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "raisfast"
description = "The last backend you'll ever need. Rust-powered headless CMS with built-in blog, ecommerce, wallet, payment and 4 plugin engines."
homepage = "https://github.com/raisfast/raisfast"
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/raisfast/raisfast"
[features]
db-mysql = ["sqlx/mysql"]
db-postgres = ["sqlx/postgres"]
db-sqlite = ["sqlx/sqlite"]
default = [
"db-sqlite",
"search-tantivy",
"plugin-js",
"plugin-lua",
"plugin-rhai",
"openapi",
"proxy",
]
export-types = ["ts-rs"]
openapi = ["utoipa-swagger-ui"]
payment-alipay = ["rsa"]
payment-all = [
"payment-alipay",
"payment-creem",
"payment-dodo",
"payment-stripe",
"payment-wechat",
]
payment-creem = []
payment-dodo = []
payment-stripe = ["async-stripe"]
payment-wechat = [
"rsa",
"x509-cert",
]
plugin-all = [
"plugin-wasm",
"plugin-js",
"plugin-lua",
"plugin-rhai",
]
plugin-js = ["rquickjs"]
plugin-lua = ["mlua"]
plugin-rhai = ["rhai"]
plugin-wasm = [
"wasmtime",
"wasmtime-wasi",
]
proxy = [
"dep:hyper",
"dep:hyper-util",
"dep:http-body-util",
"dep:tokio-util",
]
search-tantivy = ["tantivy"]
storage-s3 = [
"aws-sdk-s3",
"aws-config",
]
tauri = ["dep:tauri"]
tls = [
"axum-server",
"rustls",
"tokio-rustls",
]
[lib]
name = "raisfast"
path = "src/lib.rs"
[[bin]]
name = "raisfast"
path = "src/main.rs"
[[example]]
name = "export-types"
path = "src/tools/export-types.rs"
required-features = ["export-types"]
[[example]]
name = "tauri-app"
path = "src/tools/tauri-app.rs"
required-features = ["tauri"]
[[test]]
name = "api"
path = "tests/api.rs"
[[test]]
name = "content_type_tests"
path = "tests/content_type_tests.rs"
[[test]]
name = "proxy_tests"
path = "tests/proxy_tests.rs"
required-features = ["proxy"]
[[test]]
name = "tauri_tests"
path = "tests/tauri_tests.rs"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.ammonia]
version = "4"
[dependencies.anyhow]
version = "1"
[dependencies.arc-swap]
version = "1"
[dependencies.argon2]
version = "0.5"
[dependencies.async-graphql]
version = "7"
[dependencies.async-graphql-axum]
version = "7"
[dependencies.async-stripe]
version = "0.39"
features = [
"runtime-tokio-hyper",
"webhook-events",
]
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.aws-config]
version = "1"
optional = true
[dependencies.aws-sdk-s3]
version = "1"
optional = true
[dependencies.axum]
version = "0.8"
features = [
"macros",
"multipart",
"ws",
]
[dependencies.axum-server]
version = "0.7"
features = ["tls-rustls"]
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.chrono]
version = "0.4"
features = [
"serde",
"clock",
]
[dependencies.chrono-tz]
version = "0.10"
[dependencies.clap]
version = "4.6.0"
features = ["derive"]
[dependencies.comrak]
version = "0.36"
features = ["shortcodes"]
default-features = false
[dependencies.cron]
version = "0.15"
[dependencies.dashmap]
version = "6"
[dependencies.dotenvy]
version = "0.15"
[dependencies.ferroid]
version = "2.0.0"
features = [
"snowflake",
"atomic",
"basic",
"std",
"alloc",
]
[dependencies.futures]
version = "0.3"
[dependencies.getrandom]
version = "0.2"
[dependencies.hex]
version = "0.4"
[dependencies.hmac]
version = "0.12"
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.hyper]
version = "1"
optional = true
[dependencies.hyper-util]
version = "0.1"
features = [
"tokio",
"client",
"server",
"http1",
]
optional = true
[dependencies.image]
version = "0.25"
features = [
"jpeg",
"png",
"gif",
"webp",
"ico",
]
default-features = false
[dependencies.inventory]
version = "0.3.24"
[dependencies.jsonwebtoken]
version = "9"
[dependencies.lettre]
version = "0.11"
features = [
"smtp-transport",
"builder",
"tokio1-rustls-tls",
"hostname",
]
default-features = false
[dependencies.metrics]
version = "0.24"
[dependencies.metrics-exporter-prometheus]
version = "0.16"
features = ["http-listener"]
default-features = false
[dependencies.mime_guess]
version = "2"
[dependencies.mlua]
version = "0.11"
features = [
"lua54",
"vendored",
"send",
"serde",
"macros",
]
optional = true
[dependencies.moka]
version = "0.12"
features = ["sync"]
[dependencies.nix]
version = "0.31.2"
features = ["signal"]
[dependencies.notify]
version = "7"
features = ["macos_kqueue"]
[dependencies.raisfast-derive]
version = "0.1.0"
[dependencies.regex]
version = "1.12.3"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
default-features = false
[dependencies.rhai]
version = "1.24"
features = [
"serde",
"sync",
"internals",
]
optional = true
[dependencies.rquickjs]
version = "0.11"
features = [
"futures",
"parallel",
"loader",
"macro",
]
optional = true
[dependencies.rsa]
version = "0.9"
features = [
"pem",
"sha2",
]
optional = true
[dependencies.rss]
version = "2"
[dependencies.rust-embed]
version = "8"
features = [
"mime-guess",
"include-exclude",
]
[dependencies.rust-i18n]
version = "3.1.5"
[dependencies.rustls]
version = "0.23"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.sha1]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.slug]
version = "0.1"
[dependencies.sqlparser]
version = "0.62"
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio",
"macros",
"chrono",
]
[dependencies.tantivy]
version = "0.26"
optional = true
[dependencies.tauri]
version = "2"
features = ["devtools"]
optional = true
[dependencies.tera]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
optional = true
[dependencies.toml]
version = "0.8"
features = ["preserve_order"]
[dependencies.tower]
version = "0.5"
[dependencies.tower-http]
version = "0.6"
features = [
"cors",
"trace",
"limit",
"fs",
]
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-appender]
version = "0.2"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[dependencies.ts-rs]
version = "12"
features = ["chrono-impl"]
optional = true
[dependencies.urlencoding]
version = "2"
[dependencies.utoipa]
version = "5"
features = [
"axum_extras",
"chrono",
"uuid",
]
[dependencies.utoipa-swagger-ui]
version = "9"
features = ["axum"]
optional = true
[dependencies.uuid]
version = "1"
features = [
"v7",
"serde",
]
[dependencies.validator]
version = "0.19"
features = ["derive"]
[dependencies.wasmtime]
version = "26"
optional = true
[dependencies.wasmtime-wasi]
version = "26"
optional = true
[dependencies.x509-cert]
version = "0.2"
optional = true
[dev-dependencies.http-body-util]
version = "0.1.3"
[dev-dependencies.rstest]
version = "0.23"
[dev-dependencies.tempfile]
version = "3"
[profile.dev]
debug = 1
[profile.dist]
lto = "thin"
inherits = "release"