ZigOps is a unified infrastructure as code and configuration management tool written in Zig with Lua as its configuration language. It provides a seamless integration between infrastructure provisioning and configuration management through a shared state system.
-
Infrastructure as Code
- Declarative infrastructure definitions
- State management and drift detection
- Resource dependency resolution
- Parallel resource provisioning
- Provider plugin system
-
Configuration Management
- System state enforcement
- File management
- Service management
- Package management
- Custom resource types
-
Shared State System
- Common state store for both domains
- Real-time state synchronization
- State history and rollback capabilities
- Export/import functionality
- Zig 0.11.0 or later
- Lua 5.4 or later
git clone https://github.com/yourusername/zigops.git
cd zigops
zig build -Drelease-safe
- Create a new infrastructure definition:
-- infrastructure.lua
local infra = require("zigops.infra")
infra.resource("vpc", {
name = "main-vpc",
cidr = "10.0.0.0/16"
})
- Define configuration management:
-- config.lua
local config = require("zigops.config")
config.file("/etc/myapp.conf", {
content = "port = 8080\nworkers = 4",
mode = "0644",
owner = "app",
group = "app"
})
- Run ZigOps:
zigops apply infrastructure.lua
zigops apply config.lua
ZigOps is built with a modular architecture:
- Core Engine (Zig)
- Provider Plugins (Zig)
- Configuration Language (Lua)
- State Store (Embedded Database)
- API Layer (REST/gRPC)
# Debug build
zig build
# Release build
zig build -Drelease-safe
# Run tests
zig build test
zigops/
├── src/
│ ├── main.zig
│ ├── infra/
│ ├── config/
│ └── state/
├── libs/
│ └── lua/
├── tests/
└── examples/
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Core engine implementation
- Basic infrastructure providers
- Configuration management system
- Shared state store
- Plugin system
- CLI tools
- Documentation
- Test coverage