# 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.*
Raw data
{
"_id": null,
"home_page": "https://github.com/infradsl/infradsl",
"name": "infradsl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "InfraDSL Team <hello@infradsl.dev>",
"keywords": "infrastructure, cloud, aws, gcp, digitalocean, terraform, pulumi, iac, devops, rails",
"author": "InfraDSL Team",
"author_email": "InfraDSL Team <hello@infradsl.dev>",
"download_url": "https://files.pythonhosted.org/packages/ca/db/a04511c5565a0ff80357c3ae5ae079f5a5cabe7ee40f308e3e085ebaf94d/infradsl-0.1.3.tar.gz",
"platform": null,
"description": "# InfraDSL - The Rails of Modern Infrastructure\n\n> \"Infrastructure as simple as business logic\"\n\nInfraDSL 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!\n\n## \ud83d\ude80 Quick Start\n\n### Install\n```bash\npip install infradsl\n```\n\n### Deploy in 30 seconds\n```python\nfrom infradsl import AWS, GoogleCloud, DigitalOcean\n\n# Deploy a web server in one line\nserver = AWS.EC2(\"web-server\").t3_micro().ubuntu().service(\"nginx\").create()\n\n# Container app to Google Cloud Run\napp = GoogleCloud.CloudRun(\"my-app\").container(\"webapp\", \"./src\").public().create()\n\n# Complete production stack\ndatabase = AWS.RDS(\"app-db\").postgresql().production().create()\nstorage = AWS.S3(\"app-assets\").website().public().create()\napi = AWS.ECS(\"app-api\").fargate().container(\"api:latest\").create()\n```\n\n**Result**: Production infrastructure with auto-scaling, HTTPS, monitoring, and enterprise security.\n\n## \ud83c\udfaf Revolutionary Features\n\n### Cross-Cloud Magic\nInfraDSL automatically selects optimal cloud providers per service based on cost, performance, and compliance:\n\n```python\nfrom infradsl import InfraDSL\n\napp = InfraDSL.Application(\"my-app\")\n .auto_optimize()\n .database(\"postgresql\") # \u2192 GCP (best price/performance)\n .compute(\"web-servers\") # \u2192 AWS (best global coverage)\n .cdn(\"static-assets\") # \u2192 Cloudflare (best edge network)\n .storage(\"user-uploads\") # \u2192 DigitalOcean (best simplicity)\n .create()\n```\n\n### Universal Provider Support\n- **AWS**: EC2, ECS, RDS, S3, Lambda, CloudFront, Route53\n- **Google Cloud**: GKE, Cloud Run, Compute Engine, Cloud SQL, Cloud Storage\n- **DigitalOcean**: Droplets, Kubernetes, Databases, Spaces, Load Balancers\n- **Cloudflare**: CDN, DNS, Workers, R2 Storage, SSL/TLS\n\n### CLI Commands\n```bash\ninfradsl init my-project aws # Initialize new project\ninfradsl preview main.py # Preview changes\ninfradsl apply main.py # Deploy infrastructure\ninfradsl destroy main.py # Clean up resources\ninfradsl doctor # Check setup and diagnose issues\n```\n\n## \ud83d\udd27 Setup & Authentication\n\n### AWS Credentials\n```bash\n# Via AWS CLI\naws configure\n\n# Or environment variables\nexport AWS_ACCESS_KEY_ID=your_access_key\nexport AWS_SECRET_ACCESS_KEY=your_secret_key\nexport AWS_DEFAULT_REGION=us-east-1\n```\n\n### Google Cloud Credentials\n```bash\n# Via gcloud CLI\ngcloud auth application-default login\n\n# Or service account key\nexport GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json\n```\n\n### DigitalOcean Token\n```bash\nexport DIGITALOCEAN_TOKEN=your_do_token\n```\n\n## \ud83d\udcbb Usage Examples\n\n### AWS Infrastructure\n```python\nfrom infradsl import AWS\n\n# Simple web server\nserver = AWS.EC2(\"web-server\").t3_micro().ubuntu().create()\n\n# Production API with load balancer\napi = (AWS.ECS(\"production-api\")\n .fargate()\n .container(\"api:latest\")\n .auto_scale(min=2, max=50)\n .load_balancer()\n .create())\n\n# Database with automated backups\ndb = (AWS.RDS(\"app-db\")\n .postgresql()\n .production()\n .encrypted()\n .create())\n```\n\n### Google Cloud\n```python\nfrom infradsl import GoogleCloud\n\n# Serverless container\napp = (GoogleCloud.CloudRun(\"my-app\")\n .container(\"webapp\", \"./src\")\n .public()\n .create())\n\n# Kubernetes cluster\ncluster = (GoogleCloud.GKE(\"production\")\n .location(\"us-central1\")\n .auto_scale(min_nodes=3, max_nodes=20)\n .create())\n```\n\n### DigitalOcean\n```python\nfrom infradsl import DigitalOcean\n\n# Simple droplet\ndroplet = (DigitalOcean.Droplet(\"web-server\")\n .size(\"s-2vcpu-2gb\")\n .region(\"nyc1\")\n .create())\n\n# Kubernetes cluster\ncluster = (DigitalOcean.Kubernetes(\"app-cluster\")\n .region(\"fra1\")\n .nodes(3)\n .create())\n```\n\n## \ud83c\udfd7\ufe0f Key Benefits\n\n### 95% Code Reduction\n- **Kubernetes YAML**: 500+ lines \u2192 1 line\n- **Terraform**: 100+ lines \u2192 1 line \n- **Docker Configuration**: 50+ lines \u2192 0 lines (automatic)\n\n### Developer Experience\n- **Time to Production**: Days \u2192 Minutes\n- **Learning Curve**: Weeks \u2192 5 minutes\n- **Rails-like Simplicity**: Intuitive, chainable API\n\n### Production Ready\n- **Security**: Automatic best practices\n- **Auto-scaling**: Built-in by default\n- **Monitoring**: Enterprise-grade observability\n\n## \ud83d\udee3\ufe0f What's Next\n\n- **Template Marketplace**: Reusable infrastructure patterns\n- **Cost Optimization**: Automatic resource rightsizing\n- **Multi-Cloud Intelligence**: Cross-provider optimization\n- **IDE Integration**: VS Code and JetBrains extensions\n\n## \ud83d\udcda Documentation\n\nVisit **https://docs.infradsl.dev** for complete documentation, tutorials, and examples.\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Check out our [GitHub repository](https://github.com/biaandersson/infradsl.dev) for issues and contribution guidelines.\n\n---\n\n*Built with \u2764\ufe0f for Engineers who want to ship, not configure infrastructure.*\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Rails-like infrastructure management for AWS, Google Cloud, and DigitalOcean",
"version": "0.1.3",
"project_urls": {
"Bug Reports": "https://github.com/infradsl/infradsl/issues",
"Changelog": "https://github.com/infradsl/infradsl/blob/main/CHANGELOG.md",
"Documentation": "https://infradsl.dev",
"Homepage": "https://infradsl.dev",
"Repository": "https://github.com/infradsl/infradsl"
},
"split_keywords": [
"infrastructure",
" cloud",
" aws",
" gcp",
" digitalocean",
" terraform",
" pulumi",
" iac",
" devops",
" rails"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c46dd6b3b3decf030bea32fd4747398fcf07947fd7663abc4515f7b77ddfdd46",
"md5": "834381b108000de98e0af96ec79ebba5",
"sha256": "b807994d632ce4147cb8ac385c871179c383108e39bb8fce6a31bafc5f604f16"
},
"downloads": -1,
"filename": "infradsl-0.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "834381b108000de98e0af96ec79ebba5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 1614425,
"upload_time": "2025-07-08T14:01:13",
"upload_time_iso_8601": "2025-07-08T14:01:13.596866Z",
"url": "https://files.pythonhosted.org/packages/c4/6d/d6b3b3decf030bea32fd4747398fcf07947fd7663abc4515f7b77ddfdd46/infradsl-0.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cadba04511c5565a0ff80357c3ae5ae079f5a5cabe7ee40f308e3e085ebaf94d",
"md5": "1330478c8d26b99a93b3f7f5049bceb5",
"sha256": "dad9ab31bcb05151bcb3c4d87ccd3abaa834e4ed2c5c3fb7b5651b8c62c180e6"
},
"downloads": -1,
"filename": "infradsl-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "1330478c8d26b99a93b3f7f5049bceb5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1290012,
"upload_time": "2025-07-08T14:01:15",
"upload_time_iso_8601": "2025-07-08T14:01:15.409227Z",
"url": "https://files.pythonhosted.org/packages/ca/db/a04511c5565a0ff80357c3ae5ae079f5a5cabe7ee40f308e3e085ebaf94d/infradsl-0.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 14:01:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "infradsl",
"github_project": "infradsl",
"github_not_found": true,
"lcname": "infradsl"
}