STRUCT:

Powerful, flexible tool for automating project structure creation through YAML configurations. Generate consistent project layouts, boilerplate code, and configurations with template variables.

✨ Key Features

📝

YAML-Based Configuration

Define project structures in simple, readable YAML files with intuitive syntax and validation.

🔧

Template Variables

Dynamic content with Jinja2 templating, interactive prompts, and custom filters for flexibility.

🌐

Remote Content

Fetch files from GitHub, HTTP/HTTPS, S3, and Google Cloud Storage with automatic content handling.

🛡️

Smart File Handling

Multiple strategies for managing existing files: overwrite, skip, backup, append, and more.

🪝

Automation Hooks

Pre and post-generation shell commands for complete workflow automation and integration.

🎯

Dry Run Mode

Preview changes before applying them with detailed output and validation checks.

🚀 Quick Installation

Install via pip

# Install from GitHub
pip install git+https://github.com/httpdss/struct.git

# Verify installation
struct --version

Requires Python 3.8+ and pip. This is the recommended installation method for most users.

Run with Docker

# Pull and run with Docker
docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main generate my-config.yaml ./output

# Create an alias for easier usage
alias struct='docker run -v $(pwd):/workdir ghcr.io/httpdss/struct:main'

Perfect for CI/CD environments and when you don't want to install Python locally.

Install from Source

# Clone the repository
git clone https://github.com/httpdss/struct.git
cd struct

# Install in development mode
pip install -e .

# Run tests
python -m pytest tests/

For contributors and users who want the latest development features.

🎬 Interactive Demos

⚡ Quick Start

1. Create Configuration

# my-project.yaml
files:
  - README.md:
      content: |
        # {{@ project_name @}}
        Generated with STRUCT

folders:
  - src/:
      struct: project/python

variables:
  - project_name:
      description: "Project name"
      type: string

2. Generate Project

# Generate structure
struct generate my-project.yaml ./my-app

# List available structures
struct list

# Validate configuration
struct validate my-project.yaml

📚 Documentation

Getting Started

Installation guides, quick start tutorials, and basic usage examples to get you up and running.

Configuration

Complete YAML configuration reference, template variables, and file handling strategies.

Examples

Real-world examples, templates, and practical use cases for various project types.

Quick Reference

Essential STRUCT commands and configuration patterns at your fingertips

API Reference

Comprehensive documentation for all STRUCT features and commands

Getting Started Wizard

Generate your first STRUCT configuration in minutes

Join Our Community

Connect with developers using STRUCT to build amazing projects

What Developers Say

Real feedback from teams using STRUCT in production

Built with STRUCT

Discover projects and templates created by the community