Metadata-Version: 2.4
Name: infradsl
Version: 0.1.2
Summary: Rails-like infrastructure management for AWS, Google Cloud, and DigitalOcean
Home-page: https://github.com/infradsl/infradsl
Author: InfraDSL Team
Author-email: InfraDSL Team <hello@infradsl.dev>
Maintainer-email: InfraDSL Team <hello@infradsl.dev>
License: MIT
Project-URL: Homepage, https://infradsl.dev
Project-URL: Documentation, https://infradsl.dev
Project-URL: Repository, https://github.com/infradsl/infradsl
Project-URL: Bug Reports, https://github.com/infradsl/infradsl/issues
Project-URL: Changelog, https://github.com/infradsl/infradsl/blob/main/CHANGELOG.md
Keywords: infrastructure,cloud,aws,gcp,digitalocean,terraform,pulumi,iac,devops,rails
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: requests>=2.31.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: jinja2>=3.0.0
Requires-Dist: pydo>=0.11.0
Requires-Dist: python-digitalocean>=1.17.0
Requires-Dist: google-cloud-compute>=1.14.0
Requires-Dist: google-cloud-storage>=2.10.0
Requires-Dist: google-cloud-bigquery>=3.11.0
Requires-Dist: google-cloud-functions>=1.16.0
Requires-Dist: google-cloud-run>=0.10.0
Requires-Dist: google-cloud-container>=2.22.0
Requires-Dist: google-cloud-artifact-registry>=1.11.0
Requires-Dist: google-api-python-client>=2.170.0
Requires-Dist: google-auth>=2.23.0
Requires-Dist: boto3>=1.34.0
Requires-Dist: botocore>=1.34.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
Provides-Extra: all
Requires-Dist: pytest>=7.0.0; extra == "all"
Requires-Dist: pytest-cov>=4.0.0; extra == "all"
Requires-Dist: black>=23.0.0; extra == "all"
Requires-Dist: flake8>=6.0.0; extra == "all"
Requires-Dist: mypy>=1.0.0; extra == "all"
Requires-Dist: sphinx>=7.0.0; extra == "all"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "all"
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# InfraDSL - The Rails of Modern Infrastructure

> "Infrastructure as simple as business logic"

InfraDSL brings Rails-like simplicity to cloud infrastructure management. Deploy production-ready applications to AWS, Google Cloud, and DigitalOcean with 95% less code than traditional tools. Currently, in active development. Any feedback is welcome!

## 🚀 Quick Start

### Install
```bash
pip install infradsl
```

### Deploy in 30 seconds
```python
from infradsl import AWS, GoogleCloud, DigitalOcean

# Deploy a web server in one line
server = AWS.EC2("web-server").t3_micro().ubuntu().service("nginx").create()

# Container app to Google Cloud Run
app = GoogleCloud.CloudRun("my-app").container("webapp", "./src").public().create()

# Complete production stack
database = AWS.RDS("app-db").postgresql().production().create()
storage = AWS.S3("app-assets").website().public().create()
api = AWS.ECS("app-api").fargate().container("api:latest").create()
```

**Result**: Production infrastructure with auto-scaling, HTTPS, monitoring, and enterprise security.

## 🎯 Revolutionary Features

### Cross-Cloud Magic
InfraDSL automatically selects optimal cloud providers per service based on cost, performance, and compliance:

```python
from infradsl import InfraDSL

app = InfraDSL.Application("my-app")
    .auto_optimize()
    .database("postgresql")      # → GCP (best price/performance)
    .compute("web-servers")      # → AWS (best global coverage)
    .cdn("static-assets")        # → Cloudflare (best edge network)
    .storage("user-uploads")     # → DigitalOcean (best simplicity)
    .create()
```

### Universal Provider Support
- **AWS**: EC2, ECS, RDS, S3, Lambda, CloudFront, Route53
- **Google Cloud**: GKE, Cloud Run, Compute Engine, Cloud SQL, Cloud Storage
- **DigitalOcean**: Droplets, Kubernetes, Databases, Spaces, Load Balancers
- **Cloudflare**: CDN, DNS, Workers, R2 Storage, SSL/TLS

### CLI Commands
```bash
infradsl init my-project aws          # Initialize new project
infradsl preview main.py              # Preview changes
infradsl apply main.py                # Deploy infrastructure
infradsl destroy main.py              # Clean up resources
infradsl doctor                       # Check setup and diagnose issues
```

## 🔧 Setup & Authentication

### AWS Credentials
```bash
# Via AWS CLI
aws configure

# Or environment variables
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1
```

### Google Cloud Credentials
```bash
# Via gcloud CLI
gcloud auth application-default login

# Or service account key
export GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json
```

### DigitalOcean Token
```bash
export DIGITALOCEAN_TOKEN=your_do_token
```

## 💻 Usage Examples

### AWS Infrastructure
```python
from infradsl import AWS

# Simple web server
server = AWS.EC2("web-server").t3_micro().ubuntu().create()

# Production API with load balancer
api = (AWS.ECS("production-api")
    .fargate()
    .container("api:latest")
    .auto_scale(min=2, max=50)
    .load_balancer()
    .create())

# Database with automated backups
db = (AWS.RDS("app-db")
    .postgresql()
    .production()
    .encrypted()
    .create())
```

### Google Cloud
```python
from infradsl import GoogleCloud

# Serverless container
app = (GoogleCloud.CloudRun("my-app")
    .container("webapp", "./src")
    .public()
    .create())

# Kubernetes cluster
cluster = (GoogleCloud.GKE("production")
    .location("us-central1")
    .auto_scale(min_nodes=3, max_nodes=20)
    .create())
```

### DigitalOcean
```python
from infradsl import DigitalOcean

# Simple droplet
droplet = (DigitalOcean.Droplet("web-server")
    .size("s-2vcpu-2gb")
    .region("nyc1")
    .create())

# Kubernetes cluster
cluster = (DigitalOcean.Kubernetes("app-cluster")
    .region("fra1")
    .nodes(3)
    .create())
```

## 🏗️ Key Benefits

### 95% Code Reduction
- **Kubernetes YAML**: 500+ lines → 1 line
- **Terraform**: 100+ lines → 1 line  
- **Docker Configuration**: 50+ lines → 0 lines (automatic)

### Developer Experience
- **Time to Production**: Days → Minutes
- **Learning Curve**: Weeks → 5 minutes
- **Rails-like Simplicity**: Intuitive, chainable API

### Production Ready
- **Security**: Automatic best practices
- **Auto-scaling**: Built-in by default
- **Monitoring**: Enterprise-grade observability

## 🛣️ What's Next

- **Template Marketplace**: Reusable infrastructure patterns
- **Cost Optimization**: Automatic resource rightsizing
- **Multi-Cloud Intelligence**: Cross-provider optimization
- **IDE Integration**: VS Code and JetBrains extensions

## 📚 Documentation

Visit **https://docs.infradsl.dev** for complete documentation, tutorials, and examples.

## 🤝 Contributing

We welcome contributions! Check out our [GitHub repository](https://github.com/biaandersson/infradsl.dev) for issues and contribution guidelines.

---

*Built with ❤️ for Engineers who want to ship, not configure infrastructure.*
