runeforge

Crates.ioruneforge
lib.rsruneforge
version25.8.0
created_at2025-08-06 23:40:50.418054+00
updated_at2025-08-07 00:22:28.201277+00
descriptionBlueprint to optimal stack JSON converter - Part of Rune* Ecosystem
homepagehttps://rune.cloud/forge
repositoryhttps://github.com/rune-ecosystem/forge
max_upload_size
id1784492
size147,180
KOICHI NISHIZUKA (NishizukaKoichi)

documentation

https://docs.rs/runeforge

README

🔥 Runeforge - Part of Rune* Ecosystem

Crates.io Documentation License: MIT SBOM Cosign

Blueprint to optimal stack JSON converter

Runeforge v3 is a CLI tool that takes a Blueprint (requirements specification) and returns an optimal technology stack as JSON. The generated plan.json can be directly passed to RuneWeave v2 and later versions.

Features

  • ✅ Blueprint YAML/JSON → Optimal Stack JSON
  • ✅ Deterministic plan generation with seeds
  • ✅ Schema validation with JSON Schema
  • ✅ Cost, latency, and compliance constraints
  • ✅ Rust 2021 Edition, MSRV 1.80
  • ✅ Ready for Rust 2025 Edition migration

Installation

cargo install --path .

Usage

Basic Usage

runeforge plan -f blueprint.yaml --seed 42 --out plan.json

CLI Options

runeforge plan \
  -f blueprint.yaml        # Required: Blueprint file (YAML or JSON)
  --seed 42                # Optional: Deterministic seed (default: 42)
  --out plan.json          # Optional: Output file (default: stdout)
  --strict                 # Optional: Enable strict schema validation

Exit Codes

Code Meaning
0 Success
1 Blueprint schema validation failed
2 Stack schema validation failed
3 No stack matches constraints

Blueprint Schema

project_name: "my-app"
goals: 
  - "high-performance"
  - "low-cost"

constraints:
  monthly_cost_usd_max: 100.0
  coldstart_ms_max: 50.0
  persistence: "both"  # kv | sql | both
  region_allow:
    - "us-east-1"
    - "eu-west-1"
  compliance:
    - "audit-log"
    - "sbom"

traffic_profile:
  rps_peak: 1000.0
  global: true
  latency_sensitive: false

prefs:  # Optional preferences
  frontend: ["SvelteKit", "Next.js"]
  backend: ["Actix Web 4", "Axum"]
  database: ["PlanetScale"]
  ai: ["RuneSage", "OpenAI"]

single_language_mode: "rust"  # rust | go | ts | null

Generated Stack Schema

{
  "decisions": [
    {
      "topic": "backend",
      "choice": "Actix Web 4.11",
      "reasons": ["最高 RPS", "Tokio 1.47 安定"],
      "alternatives": ["Axum"]
    }
  ],
  "stack": {
    "language": "Rust",
    "frontend": "SvelteKit 2",
    "backend": "Actix Web 4.11",
    "database": "PlanetScale Boost",
    "cache": "Cloudflare KV",
    "queue": "NATS JetStream 0.37",
    "auth": "Passkeys(OIDC)",
    "payments": "RuneVault → Stripe",
    "ai": ["RuneSage", "OpenAI GPT-4o"],
    "infra": "Terraform + Cloudflare Workers",
    "ci_cd": "GitHub Actions"
  },
  "estimated": {
    "monthly_cost_usd": 110.0
  },
  "slo": {
    "availability_pct": 99.95,
    "p95_ms": {
      "read": 800.0,
      "write": 1200.0
    }
  },
  "risk": [
    {
      "id": "r1",
      "desc": "Workers で TCP 制限",
      "mitigation": "`connect()` API 経由で HTTP 化"
    }
  ]
}

Examples

The repository includes three test cases:

Baseline (Low Cost)

runeforge plan -f examples/baseline.yaml --seed 42

Latency Optimized

runeforge plan -f examples/latency.yaml --seed 42

Compliance Heavy

runeforge plan -f examples/compliance.yaml --seed 42

Selection Algorithm

  1. Normalize - Fill in Blueprint defaults
  2. Filter - Remove candidates that don't meet constraints
  3. Score - Calculate weighted scores:
    • Quality: 30%
    • SLO: 25%
    • Cost: 20%
    • Security: 15%
    • Operations: 10%
  4. Select - Choose highest scoring candidates
  5. Validate - Ensure output matches schema

Development

Prerequisites

  • Rust 1.80+
  • Standard development tools

Build

cargo build --release

Test

cargo test

Run Examples

# Test baseline scenario
cargo run -- plan -f examples/baseline.yaml --seed 42

# Test with strict validation  
cargo run -- plan -f examples/latency.yaml --seed 42 --strict

# Output to file
cargo run -- plan -f examples/compliance.yaml --seed 42 --out output.json

Architecture

src/
├── main.rs       # CLI interface (clap)
├── selector.rs   # Stack selection logic  
├── schema.rs     # Schema validation & types
└── util.rs       # Utilities (hash, random, etc.)

resources/
└── rules.yaml    # Candidate definitions & weights

schemas/
├── blueprint.schema.json
└── stack.schema.json

examples/
├── baseline.yaml      # Low cost scenario
├── latency.yaml       # Ultra-low latency
└── compliance.yaml    # Enterprise compliance

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure cargo test passes
  5. Submit a pull request

License

MIT License - see LICENSE for details.

Changelog

v3.0.0 (2025-08-06)

  • Initial release
  • Blueprint → Stack JSON conversion
  • Deterministic selection with seeds
  • Schema validation support
  • Rust 2021 Edition, MSRV 1.80
Commit count: 0

cargo fmt