Welcome to TBDTools - A Modern Infrastructure as Code Ecosystem
TBDTools is a comprehensive suite of infrastructure automation tools built with Rust and Python, designed to make infrastructure management more efficient, reliable, and developer-friendly. Our tools combine Rust's performance and reliability with Python's ease of use and extensive ecosystem.
Our flagship Infrastructure as Code tool that lets you define infrastructure using Python with the speed and reliability of Rust.
- 🚀 Python-based infrastructure definitions
- ⚡ High-performance Rust core
- 🔌 Multi-cloud provider support
- 🔒 Built-in state management
- 📦 Modular architecture
Python SDK for writing infrastructure definitions.
- 🐍 Type-safe Python interface
- 🎯 Multi-cloud abstractions
- 📚 Comprehensive resource types
- ✨ IDE support and autocompletion
Web interface for infrastructure management.
- 🖥️ Modern React-based UI
- 📊 Resource visualization
- 🔍 State inspection
- 📈 Drift detection
Configuration management tooling.
- 🔧 Template management
- 📝 Configuration validation
- 🔄 Version control integration
- 🔐 Secret handling
Control plane for self-hosted deployments.
- 🎮 Centralized management
- 🔐 RBAC and audit logging
- 🔄 State backend
- 📡 Provider coordination
# Install the CLI
cargo install tbd-iac
# Create a new project
tbd init my-infrastructure
# Navigate to project
cd my-infrastructure
# Install dependencies
poetry install
# Deploy infrastructure
tbd plan -s main
tbd apply -s main
from tbdtools import Stack, aws
class MainStack(Stack):
def __init__(self, name: str):
super().__init__(name)
vpc = aws.ec2.Vpc(
self,
"MainVpc",
cidr="10.0.0.0/16",
max_azs=2,
)
self.output(
"vpc_id",
value=vpc.vpc_id,
description="ID of the VPC"
)
stack = MainStack("main")
Our tools follow these key architectural principles:
- Provider Agnosticism: Core functionality is separate from provider implementations
- State Management: Reliable state tracking with SQLite and concurrent operation support
- Security First: Strong typing, comprehensive validation, and secure defaults
- Developer Experience: Clear APIs, helpful error messages, and excellent documentation
- Performance: Rust-based core with async/await and efficient resource handling
We welcome contributions to any of our projects! Each repository has its own CONTRIBUTING.md with specific guidelines. Generally:
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests
- Submit a pull request
All contributions should follow our Conventional Commits specification.
- 📚 Documentation
- 💬 Discord Community
- 📝 Blog
TBDTools is under active development. Current status:
✅ Core functionality:
- Infrastructure resource management
- Configuration templating
- State management
- CLI interface
🚧 In Progress:
- AWS provider implementation
- GCP/Azure providers
- Web UI enhancements
- Documentation expansion
All TBDTools projects are licensed under the MIT License - see individual repositories for details.