cuezel
constructs
cuezel | constructs | |
---|---|---|
1 | 4 | |
12 | 387 | |
- | 1.3% | |
0.0 | 9.4 | |
about 3 years ago | 1 day ago | |
Go | TypeScript | |
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cuezel
-
Dagger: a new way to build CI/CD pipelines
I played with a similar idea a while ago: https://github.com/ecordell/cuezel/ (cuezel as in: "Bazel but with CUE"), but I was never sure that what I was doing was in the spirit of CUE.
CUE pushes nondeterminism into "_tool.cue"[0] files that are allowed to do things like IO and run external processes. Tool files scratch a similar itch to Makefiles, but they lack an integrated plugin system like Bazel (hence why I played with the idea of CUE + Bazel).
With Dagger you seem to be restricted to the set of things that the dagger tool can interpret just with like my Cuezel tool you are limited to what I happened to implement.
In CUE `_tool` files you are also limited to the set of things that the tool builtins provide, but the difference is that you know that the rest of the CUE program is deterministic/pure (everything not in a _tool file).
There's clearly value in tooling that reads CUE definitions, and dagger is the first commercial interest in CUE that I've seen, which is exciting.
But I'm most interested in some CUE-interpreter meta-tool that would allow you to import cue definitions + their interpreters and version them together, but for use in `_tool` files to keep the delineation clear. Maybe this is where dagger is heading? (if so it wasn't clear from the docs)
[0]: https://pkg.go.dev/cuelang.org/[email protected]/pkg/tool
constructs
-
Cloud, why so difficult? 🤷♀️
To "meet developers where they are" is a beautiful tenet of AWS, and of the CDK, and inspired us to create awesome technology such as JSII and constructs.
-
Projecting templating with CDK
I agree with constructs, I recommend using both (article mentions). Create your template, you might have various CDK constructs (community, AWS, personal), the template will produce a full project how you / your org want it. This might include your github actions for linting, cdk synth, testing, deployment etc. Application source (Lambda, API, container etc). Anyone in your team or external should be able to take that template and produce a project that is the same.
-
Dagger: a new way to build CI/CD pipelines
Have you heard of or explored https://github.com/aws/constructs (related: https://github.com/aws/jsii and https://github.com/aws/aws-cdk)?
This is what CDK uses for declarative modeling, but gives the opportunity to use languages/tooling that most devs are already familiar with. CDK8s already uses it as a replacement for yaml (technically, the yaml becomes an implementation detail rather than actually replaced)
-
Projen: The Next CDK Suprise!
All CDKs are based on Amazon's Constructs, (which also uses projen). They come with a CLI and Development Kit (API). In short, you set up an Object in code and then synthesize the representation to disk. This opens up the full power of programming languages. If you are sick of the issues with terraform, CloudFormation Templates, troposphere, Azure Blue Prints, or the like then this is for you.
What are some alternatives?
Dagger2 - A fast dependency injector for Android and Java.
dagger - Application Delivery as Code that Runs Anywhere
earthly - Super simple build framework with fast, repeatable builds and an instantly familiar syntax – like Dockerfile and Makefile had a baby.
projen - Rapidly build modern applications with advanced configuration management
jsii - jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!
awesome-projen - P6M7G8's Awesome Projen
research - Language research sketchbook
notation - A CLI tool to sign and verify artifacts
yplatform - Self-service bootstrap/build/CI/CD. Software and configuration that supports various cycles of software development.
wing - A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡
Dagger.jl - A framework for out-of-core and parallel execution