[package] name = "create-rust-app" description = "Set up a modern rust+react web app by running one command." version = "11.0.0" edition = "2018" authors = ["Haris <4259838+Wulf@users.noreply.github.com>"] readme = "../README.md" repository = "https://github.com/Wulf/create-rust-app" license = "MIT OR Apache-2.0" keywords = ["react", "typescript", "generation", "backend", "frontend"] categories = [ "command-line-utilities", "development-tools", "web-programming", "config", "database", ] [dependencies] ## ## COMMON / DEFAULT - required dependencies ## dotenv = "0.15.0" # + plugin_dev serde_json = "1.0.96" lettre = "0.10.4" tera = { version = "1.18.1" } lazy_static = { version = "1.4.0" } serde = { version = "1.0.163", features = ["derive"] } diesel = { version = "2.1.0", default-features = false, features = [ "uuid", "r2d2", "chrono", ] } # + plugin_dev, plugin_auth once_cell = "1.17.1" diesel_logger = "0.3.0" ## ## Database ## # sqlite dependencies libsqlite3-sys = { version = "0.26", optional = true, features = ["bundled"] } ## ## PLUGINS ## # plugin_auth rust-argon2 = { optional = true, version = "1.0" } rand = { optional = true, version = "0.8.5" } jsonwebtoken = { optional = true, version = "8.3.0" } tsync = { optional = true, version = "1.7.0" } chrono = { optional = true, version = "0.4.24", default-features = false, features = [ "clock", "serde", ] } dyn-clone = { optional = true, version = "1.0" } # needed to allow the Mailer struct to be cloned # plugin_dev diesel_migrations = { optional = true, version = "2.1.0" } cargo_metadata = { optional = true, version = "0.15.4" } watchexec = { optional = true, version = "2.3.0" } #### tracing = { optional=true, version="0.1" } #### tracing-subscriber = { optional=true, version="0.3.16", features=["env-filter"] } clearscreen = { optional = true, version = "2.0" } open = { optional = true, version = "4.1.0" } cargo_toml = { optional = true, version = "0.15.2" } reqwest = { optional = true, version = "0.11.18" } # plugin_storage # aws-config = { optional = true, version = "0.14.0" } aws-types = { optional = true, version = "0.8.0" } # aws-endpoint = { optional = true, version = "0.14.0" } aws-sdk-s3 = { optional = true, version = "0.8.0" } http = { optional = true, version = "0.2.9" } diesel_derives = { optional = true, version = "2.1.0" } uuid = { optional = true, version = "1.3.3", features = ["v4", "serde"] } md5 = { optional = true, version = "0.7.0" } base64 = { optional = true, version = "0.21.2" } # plugin_auth-oidc openidconnect = { optional = true, version = "3.3.0" } # plugin_utoipa dependencies utoipa = { optional = true, version = "4", features = [ "actix_extras", "chrono", "openapi_extensions", ] } # plugin_tasks fang = { optional = true, version = "0.10.4", features = ["asynk"] } ## ## BACKENDS ## # poem dependencies poem = { optional = true, version = "1.3.55", features = [ "anyhow", "cookie", "static-files", ] } # actix_web dependencies # actix-multipart = { optional = true, version = "0.6.0" } actix-files = { optional = true, version = "0.6.2" } actix-http = { optional = true, version = "3.3.1" } actix-web = { optional = true, version = "4.3.1" } # actix-web-httpauth = { optional = true, version = "0.8.0" } derive_more = { optional = true, version = "0.99.17" } futures = { optional = true, version = "0.3.28" } # env_logger = { optional = true, version = "0.10.0" } # axum dependencies (not yet released; only used for plugin_dev) axum = { optional = true, version = "0.6.18" } ## ## MISC - here, we list deps which are required by multiple features but are not required in all configurations ## mime_guess = { optional = true, version = "2.0.4" } # backend_poem, plugin_storage anyhow = { optional = true, version = "1.0.71" } # backend_poem, plugin_auth, plugin_dev tokio = { optional = true, version = "1", features = [ "full", ] } # backend_poem, backend_axum, plugin_storage, plugin_tasks async-priority-channel = "0.1.0" # plugin_dev futures-util = { optional = true, version = "0.3.28" } # plugin_dev, plugin_storage [features] default = [ "backend_actix-web", "database_postgres", "plugin_auth", "plugin_container", "plugin_dev", "plugin_graphql", "plugin_storage", "plugin_utoipa", "plugin_auth-oidc", ] plugin_dev = [ "backend_axum", "cargo_toml", "open", "reqwest", "anyhow", "clearscreen", "watchexec", "cargo_metadata", "diesel_migrations", "futures-util", ] plugin_container = [] plugin_auth = [ "anyhow", "rust-argon2", "rand", "jsonwebtoken", "chrono", "tsync", "dyn-clone", ] plugin_auth-oidc = ["openidconnect"] plugin_storage = [ # "aws-config", "aws-types", # "aws-endpoint", "aws-sdk-s3", "tokio", "http", "diesel_derives", "uuid", "md5", "mime_guess", "base64", "futures-util", ] plugin_graphql = [] plugin_utoipa = [ "utoipa", "backend_actix-web", ] # for now, only works with actix-web! plugin_tasks = ["fang", "tokio"] backend_poem = ["poem", "anyhow", "mime_guess", "tokio"] backend_actix-web = [ "actix-web", "actix-http", "actix-files", # "actix-multipart", # "actix-web-httpauth", "derive_more", "futures", # "env_logger", ] backend_axum = ["axum", "axum/ws", "tokio"] database_sqlite = [ "diesel/sqlite", "diesel/returning_clauses_for_sqlite_3_35", "libsqlite3-sys/bundled", ] database_postgres = ["diesel/postgres"]