fleetflow 0.1.1

A beautiful container orchestration tool using KDL configuration
fleetflow-0.1.1 is not a library.

FleetFlow

Crates.io Documentation License

Docker Composeよりシンプル。KDLで書く、次世代の環境構築ツール。

FleetFlowは、KDL(KDL Document Language)をベースにした、革新的で超シンプルなコンテナオーケストレーションツールです。Docker Composeの手軽さはそのままに、より少ない記述で、より強力な設定管理を実現します。

✨ 特徴

  • 超シンプル: Docker Composeと同等かそれ以下の記述量
  • 可読性: YAMLよりも読みやすいKDL構文
  • ステージ管理: 開発環境から本番環境まで統一管理
  • 自動推測: サービス名から自動的にDockerイメージを推測

📦 インストール

cargo install fleetflow

🚀 クイックスタート

1. 設定ファイルを作成

flow.kdl:

service "postgres" {
    version "16"
    ports {
        port host=5432 container=5432
    }
    environment {
        POSTGRES_USER "myuser"
        POSTGRES_PASSWORD "mypass"
        POSTGRES_DB "mydb"
    }
}

service "redis" {
    version "7"
    ports {
        port host=6379 container=6379
    }
}

service "app" {
    image "myapp"
    version "latest"
    ports {
        port host=8080 container=8080
    }
    environment {
        DATABASE_URL "postgresql://myuser:mypass@postgres:5432/mydb"
        REDIS_URL "redis://redis:6379"
    }
    depends_on "postgres" "redis"
}

stage "local" {
    service "postgres"
    service "redis"
    service "app"
}

2. サービスを起動

fleetflow up

3. サービスを確認

fleetflow ps

4. サービスを停止

fleetflow down

📚 主なコマンド

コマンド 説明
fleetflow up [stage] ステージ内のサービスを起動
fleetflow down [stage] ステージ内のサービスを停止
fleetflow ps 実行中のサービスを一覧表示
fleetflow logs <service> サービスのログを表示

🎯 主な機能

KDLベースの直感的な記述

YAMLの冗長さから解放され、読みやすく書きやすい設定ファイルを実現。

service "api" {
    image "myapp:latest"
    port 8080
    env {
        DATABASE_URL "postgresql://localhost/mydb"
    }
}

ステージベースの環境管理

開発環境から本番環境まで、ステージで管理。

stage "local" {
    service "postgres"
    service "redis"
    service "app"
}

stage "production" {
    service "postgres"
    service "redis"
}

自動イメージ推測

サービス名から自動的にDockerイメージを推測。設定の記述量を削減。

service "postgres" {
    version "16"  // postgres:16 として自動推測
}

テンプレート変数

環境変数や変数定義を使って、設定を動的に生成。

variables {
    app_version "1.0.0"
    registry "ghcr.io/myorg"
}

service "api" {
    image "{{ registry }}/api:{{ app_version }}"
}

📖 ドキュメント

🏗️ アーキテクチャ

FleetFlowは以下のクレートで構成されています:

  • fleetflow - メインCLI
  • fleetflow-atom - コア機能(パーサー、モデル、ローダー)
  • fleetflow-config - 設定ファイル検索と管理
  • fleetflow-container - Dockerコンテナランタイム統合

📄 ライセンス

MIT OR Apache-2.0

🙏 コントリビューション

Issue、Pull Requestを歓迎します!

🔗 関連クレート