lua-astra 0.32.4

🔥 Blazingly Fast 🔥 web server runtime for Lua
[package]
name = "lua-astra"
version = "0.32.4"
authors = ["Elham Aryanpur <elhamaryanpur5@gmail.com>"]
description = "🔥 Blazingly Fast 🔥 web server runtime for Lua"
documentation = "https://astra.arkforge.net/docs/latest"
repository = "https://github.com/ArkForgeLabs/Astra"
keywords = ["lua", "luau", "server", "webserver", "runtime"]
categories = [
  "web-programming",
  "web-programming::http-server",
  "web-programming::http-client",
  "network-programming",
]
edition = "2024"
license = "Apache-2.0"
exclude = ["examples", "docs"]

[[bin]]
name = "astra"
path = "src/main.rs"

[features]
default = ["luajit"]
luajit = ["mlua/luajit"]
luajit52 = ["mlua/luajit52"]
luau = ["mlua/luau"]
lua51 = ["mlua/lua51"]
lua52 = ["mlua/lua52"]
lua53 = ["mlua/lua53"]
lua54 = ["mlua/lua54"]

[dependencies]
mlua = { version = "0.11.4", features = [
  "serialize",
  "vendored",
  "async",
  "send",
  "error-send",
  "macros",
  "anyhow",
] }

# http
axum = { version = "0.8.6", features = ["macros", "multipart", "http2", "ws"] }
axum-extra = { version = "0.10.3", features = ["cookie"] }
reqwest = { version = "0.12.23", features = [
  "json",
  "rustls-tls",
  "charset",
  "multipart",
  "http2",
  "stream",
  "macos-system-configuration",
], default-features = false }
tower = { version = "0.5.2" }
tower-http = { version = "0.6.6", features = [
  "fs",
  "trace",
  "compression-full",
  "decompression-full",
] }
time = "0.3.41"
minijinja = { version = "2.12.0", features = [
  "loader",
  "urlencode",
  "loop_controls",
  "speedups",
] }
glob = "0.3.3"

# data formats
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.145" }
uuid = { version = "1.18.1", features = ["serde", "v4"] }
sha2 = "0.10.9"
sha3 = "0.10.8"
base64 = "0.22.1"
bytes = { version = "1.10.1", features = ["serde"] }
chrono = { version = "0.4.42", features = ["serde"] }

# runtime
tokio = { version = "1.47.1", features = [
  "macros",
  "signal",
  "rt-multi-thread",
] }
futures = "0.3.31"
clap = { version = "4.5.48", features = ["cargo", "derive"] }
dotenvy = "0.15.7"
tracing = "0.1.41"
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
version-compare = "0.2.0"
regex = "1.11.3"

# database
sqlx = { version = "0.8.6", features = [
  "runtime-tokio",
  "tls-rustls",
  "postgres",
  "sqlite",
  "json",
  "chrono",
  "uuid",
] }
include_dir = "0.7.4"

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
overflow-checks = false
debug = 0
[profile.release.package."*"]
opt-level = 3
codegen-units = 1