Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/staticaland/awesome-cue


https://github.com/staticaland/awesome-cue

List: awesome-cue

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

#+title: Awesome CUE

* How I learned CUE

I have heard some people say the CUE website is intimidating. I think this is
because too many concepts are introduced at once, and things are not introduced
in the best order. The menu on the left contains many topics.

First you should read [[https://cuelang.org/docs/install/][Getting Started | CUE]] and install CUE. After this I would
go straight to the [[https://cuelang.org/docs/tutorials/tour/intro/][Introduction | CUE]] tutorial. Try to grok:

- [[https://cuelang.org/docs/tutorials/tour/intro/constraints/][Constraints | CUE]]
- Constraints are for validation and, well, constraining possible values.
- Constraints can reduce boilerplate.
- [[https://cuetorials.com/overview/foundations/#conjunctions][Foundations | Overview | Cuetorials]]
- Explains conjunctions.
- [[https://cuelang.org/docs/tutorials/tour/intro/schema/][Definitions | CUE]]
- Introduces the conjunction operator =&= without having introduced it.
- [[https://docs.dagger.io/1215/what-is-cue/][What is CUE? | Dagger]] is also interesting. They use the word *embedding* to
describe how the conjunction operator works. CUE works by [[https://en.wikipedia.org/wiki/Composition_over_inheritance][Composition over
inheritance]], which is a very good thing.

You need to understand what =#= and =_#= means. You also need to understand =&=.

You can import any YAML or JSON file with =cue import=. Wrap the data in a
object and try to add some schema definitions to it. Run =cue export= or =cue
eval= to see what you get.

Any data you add will be exported by CUE as one big blob of data. You can use
CUE's scripting layer to export different parts of the data. You could also use
=jq= if you so desire.

* Articles and tutorials

- [[https://cuelang.org/docs/tutorials/][Tutorials | CUE]]
- [[https://github.com/cue-lang/cue/blob/v0.4.3/doc/tutorial/kubernetes/README.md][cue/README.md at v0.4.3 · cue-lang/cue · GitHub]]
- [[https://cuetorials.com/][Cuetorials]]
- [[https://docs.dagger.io/1215/what-is-cue/][What is CUE? | Dagger]]

* Audio and video

- [[https://www.youtube.com/watch?v=jSRXobu1jHk][Large-Scale Engineering of Configuration with Unification (Marcel van
Lohuizen) - YouTube]]
- [[https://changelog.com/gotime/163][CUE: Configuration superpowers for everyone with Marcel van Lohuizen, Paul
Jolly, & Roger Peppe (Go Time #163) |> Changelog]]
- There is a transcript on this page.
- [[https://www.youtube.com/watch?v=fR_yApIf6jU][Hands-on Introduction to CUE | Rawkode Live - YouTube]]
- [[https://www.youtube.com/watch?v=e4v1_2bSeGI][FOSDEM 2022 - A practical guide to CUE: patterns for everyday use - YouTube]]
- [[https://www.youtube.com/watch?v=R9NWBp_OjMo][Pulumi YAML & CUE language with Paul Jolly | Modern Infrastructure - YouTube]]
- [[https://www.youtube.com/watch?v=Ey3ca0K2h2U][Using CUE with GitHub Actions - YouTube]]
- This video makes a lot more sense if you learn the syntax and concepts of
CUE first. [[https://github.com/cue-examples/github-actions-example][cue-examples/github-actions-example]] is the code for this
tutorial.
- [[https://www.youtube.com/watch?v=2B2PZTZlPJg][Cue Project on GerritHub and GitHub actions - YouTube]]

* Projects using CUE

You can use GitHub Code Search (see [[https://docs.github.com/en/search-github/searching-on-github/searching-code][docs]] and [[https://notes.garden/%F0%9F%8C%B2+Notes/Searching+on+GitHub][Searching on GitHub]]):

#+begin_src sh
path:*.cue language:cue
path:.github/ language:cue
#+end_src

- [[https://cs.github.com/?scopeName=All+repos&scope=&q=path%3A*.cue][CUE files]]
- [[https://cs.github.com/?scopeName=All+repos&scope=&q=path%3A.github%2F+language%3Acue][CUE files in the .github directory]]

** GitHub Actions workflows

- [[https://github.com/staticaland/go-whaturl/tree/main/.github/cue][go-whaturl/.github/cue at main · staticaland/go-whaturl · GitHub]]
- [[https://github.com/hofstadter-io/hof/tree/_dev/.github/workflows][hof/.github/workflows at _dev · hofstadter-io/hof · GitHub]]
- [[https://github.com/cue-unity/unity/tree/main/internal/ci][unity/internal/ci at main · cue-unity/unity · GitHub]]
- [[https://github.com/augustfengd/augustfeng.app][GitHub - augustfengd/augustfeng.app: Code for my personal cloud infrastructure.]]

** Terraform

- [[https://github.com/augustfengd/augustfeng.app][GitHub - augustfengd/augustfeng.app: Code for my personal cloud infrastructure.]]

* Other languages

- https://yglu.io/

* See also

- [[https://github.com/adieu/awesome-cue][GitHub - adieu/awesome-cue: A curated list of awesome CUE frameworks,
libraries and software]]
- [[https://github.com/zloeber/awesome-declarative-config][GitHub - zloeber/awesome-declarative-config: An awesome list of declaratively
configured applications and engines.]]
- [[https://zloeber.github.io/awesome-declarative-config/][Awesome Declarative]]