ferrisup 0.2.2

A versatile Rust project bootstrapping tool - start anywhere, scale anywhere
Documentation
{
  "project_name": "rust_workspace",
  "template": "full-stack",
  "components": {
    "client": {
      "apps": ["app1", "app2"],
      "frameworks": ["dioxus", "dioxus"]
    },
    "server": {
      "services": ["service1", "service2"],
      "frameworks": ["poem", "axum"]
    },
    "database": {
      "enabled": true,
      "engines": ["postgres", "redis", "neo4j", "milvus", "typedb", "scylladb", "dgraph"],
      "migration_tool": "sqlx"
    },
    "libs": {
      "modules": ["core", "models", "auth"]
    },
    "binaries": {
      "apps": ["cli", "server", "worker"],
      "types": ["app", "service", "utility"]
    },
    "ai": {
      "models": ["llama", "bert", "whisper", "stable-diffusion"],
      "backends": ["candle", "ort", "tch"],
      "features": ["text-generation", "speech-to-text", "image-generation", "embedding"]
    },
    "edge": {
      "targets": ["wasm", "cloudflare-workers", "deno-deploy", "netlify-functions"],
      "features": ["serverless", "edge-computing", "cdn-integration"]
    },
    "embedded": {
      "targets": ["rp2040", "esp32", "stm32", "arduino"],
      "features": ["no-std", "real-time", "low-power"]
    },
    "observability": {
      "metrics": ["prometheus", "opentelemetry"],
      "logging": ["tracing", "slog"],
      "dashboards": ["grafana", "jaeger"]
    }
  },
  "dependencies": {
    "dioxus": { "version": "0.4", "features": ["web"] },
    "tauri": { "version": "1.0", "features": ["all-api"] },
    "yew": { "version": "0.21", "features": [] },
    "leptos": { "version": "0.5", "features": [] },
    "poem": { "version": "1.3", "features": [] },
    "axum": { "version": "0.6", "features": [] },
    "actix-web": { "version": "4.0", "features": [] },
    "rocket": { "version": "0.5.0", "features": [] },
    "tide": { "version": "0.16", "features": [] },
    "serde": { "version": "1.0", "features": ["derive"] },
    "tokio": { "version": "1.0", "features": ["full"] },
    "sqlx": { "version": "0.7", "features": ["runtime-tokio", "tls-rustls", "postgres", "mysql", "sqlite"] },
    "redis": { "version": "0.24", "features": ["tokio-comp"] },
    "sea-orm": { "version": "0.12", "features": ["runtime-tokio-rustls", "sqlx-postgres"] },
    "diesel": { "version": "2.1", "features": ["postgres", "r2d2"] },
    "neo4rs": { "version": "0.6", "features": [] },
    "milvus-sdk": { "version": "0.1", "features": [] },
    "qdrant-client": { "version": "1.6", "features": [] },
    "typedb-client": { "version": "0.1", "features": [] },
    "dgraph-client": { "version": "0.3", "features": [] },
    "scylla": { "version": "0.11", "features": ["ssl", "tokio-comp"] },
    "rusted_cypher": { "version": "1.1", "features": [] },
    "arangors": { "version": "0.5", "features": ["reqwest_async"] },
    "iroh": { "version": "0.12", "features": [] },
    "hypercore": { "version": "0.1", "features": [] },
    "rustgraph": { "version": "0.2", "features": [] },
    "clap": { "version": "4.4", "features": ["derive"] },
    "tracing": { "version": "0.1", "features": ["attributes"] },
    "candle-core": { "version": "0.3", "features": ["metal"] },
    "candle-nn": { "version": "0.3", "features": [] },
    "tokenizers": { "version": "0.15", "features": [] },
    "ort": { "version": "1.16", "features": ["download-binaries"] },
    "tch": { "version": "0.13", "features": [] },
    "whisper-rs": { "version": "0.8", "features": [] },
    "llm": { "version": "0.1", "features": ["cublas"] },
    "diffusers-rs": { "version": "0.3", "features": [] },
    "wasm-bindgen": { "version": "0.2", "features": [] },
    "worker": { "version": "0.0.15", "features": [] },
    "deno_core": { "version": "0.234", "features": [] },
    "netlify_lambda": { "version": "0.1", "features": [] },
    "embedded-hal": { "version": "1.0.0", "features": [] },
    "rp2040-hal": { "version": "0.9", "features": [] },
    "esp32-hal": { "version": "0.14", "features": [] },
    "stm32f4xx-hal": { "version": "0.15", "features": ["rt", "stm32f411"] },
    "arduino-hal": { "version": "0.1", "features": [] },
    "prometheus": { "version": "0.13", "features": [] },
    "opentelemetry": { "version": "0.20", "features": ["rt-tokio"] },
    "slog": { "version": "2.7", "features": [] },
    "jaeger": { "version": "0.7", "features": [] }
  },
  "templates": {
    "minimal": ["binaries"],
    "hello-world": ["binaries", "libs"],
    "full-stack": ["client", "server", "database", "libs"],
    "backend-only": ["server", "database", "libs"],
    "frontend-only": ["client", "libs"],
    "api-service": ["server", "database", "libs"],
    "library": ["libs"],
    "cli-app": ["binaries", "libs"],
    "gen-ai": ["ai", "server", "libs"],
    "edge-app": ["edge", "libs"],
    "iot-device": ["embedded", "libs"],
    "ml-pipeline": ["ai", "server", "database", "libs"],
    "serverless": ["edge", "database", "libs"],
    "data-science": ["ai", "database", "libs"]
  },
  "scaling_options": {
    "docker": true,
    "kubernetes": true,
    "ci_cd": true,
    "service_mesh": {
      "istio": true,
      "linkerd": true
    },
    "observability": {
      "prometheus": true,
      "grafana": true,
      "jaeger": true
    },
    "deployment": {
      "aws": true,
      "gcp": true,
      "azure": true,
      "digital_ocean": true,
      "heroku": true,
      "vercel": true,
      "netlify": true,
      "fly_io": true,
      "railway": true,
      "render": true,
      "cloudflare": true
    }
  }
}