1个不稳定版本
0.1.2 | 2024年8月14日 |
---|
#1083 在 网络编程
每月111次下载
70KB
1.5K SLoC
nexus7: Rust SDK用于HCL转换
概述
nexus7是一个Rust SDK,旨在将Rust代码转换为HashiCorp配置语言(HCL)。此项目允许开发者使用Rust编写他们的基础设施代码,同时仍可以利用Terraform或OpenTofu作为基础设施管理的后端。
功能
- 具有结构体和类型驱动的典范Rust方法
- 使用强类型结构体进行Rust到HCL的转换
- 利用Rust的特质系统进行可扩展和可组合的基础设施定义
- 在编译时验证基础设施配置
- 与Terraform和OpenTofu后端兼容
- 模块化架构,便于添加新的提供者和资源类型
范围和当前限制
nexus7最初是为了构建
pocketsizefund
的基础设施而开发的。因此,在其早期阶段,它主要关注pocketsizefund使用的组件。然而,我们的长期目标是扩展其功能,以满足更广泛的设施需求。当前限制
- 仅支持AWS作为云提供商
- 限于EC2实例作为计算资源
- 仅限于t2.micro实例类型
尽管这些限制反映了我们当前的关注点,但我们致力于随着时间的推移扩展nexus7的功能,以支持更广泛的云提供商、资源类型和配置选项。
入门
先决条件
- Rust 1.54.0或更高版本
- Cargo包管理器
- Terraform或OpenTofu(用于应用生成的HCL)
安装
-
将nexus7添加到您的Cargo.toml中
[dependencies] nexus7 = "0.1.0"
-
运行cargo build以获取和编译SDK
cargo build
使用
- 使用nexus7 SDK用Rust编写您的基础设施代码。
- 使用SDK将您的Rust代码转换为HCL。
- 使用Terraform或OpenTofu应用生成的HCL。
示例
use nexus7::{Resource, Provider};
// Define a resource
let resource = Resource::new("aws_instance", "example")
.with_provider(Provider::AWS)
.with_attribute("ami", "ami-0c94855ba95c71c99")
.with_attribute("instance_type", "t2.micro");
// Transpile the resource to HCL
let hcl = resource.to_hcl();
// Apply the HCL using Terraform or OpenTofu
// ...
贡献
我们欢迎对nexus7项目的贡献!请阅读我们的
CONTRIBUTING.md
文件,了解如何提交拉取请求、报告问题和提出改进建议。测试
要运行测试套件
cargo test
文档
有关详细文档,请参阅
docs/
目录或访问我们的在线文档
。许可证
本项目采用
MIT许可证
。联系
如有问题、建议或合作机会,请联系项目维护者:[email protected]。
致谢
(列出任何对项目做出贡献或启发的个人、组织或资源)
依赖项
~13–23MB
~383K SLoC