cel-spec
cue
cel-spec | cue | |
---|---|---|
9 | 109 | |
2,389 | 4,765 | |
2.5% | 1.2% | |
7.5 | 9.8 | |
3 days ago | 1 day ago | |
Go | Go | |
Apache License 2.0 | 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.
cel-spec
-
Apple releases Pkl – onfiguration as code language
My employer uses a combination of Protocol Buffers (for the config schema definition) and Bazel/Starlark (for concrete instantiations). Configs are validated at build time and runtime using CEL (https://github.com/google/cel-spec).
- SQL as API
- AWS Creates New Policy-Based Access Control Language Cedar
-
CEL for admission controller with ValidatingAdmissionPolicy in K8s 1.26
The Common Expression Language (CEL) implements common semantics for expression evaluation, enabling different applications to more easily interoperate. https://github.com/google/cel-spec
-
Pure Ruby implementation of Google Common Expression Language
Looks like Google invented a specification for a simple "expression language." -> https://github.com/google/cel-spec/blob/master/doc/langdef.md. Writing the expressions feels like writing Java, C++, Go, or TypeScript code. Google then released C++ and Go versions of this langauge as a library.
-
A library for evaluating expressions like Google Common Expression Language but for Java
https://github.com/google/cel-spec unfortunately, it's in Go or C++. Of course I can write a binding to them. But is there any other similar that you would know of for Java? My other course of action would be to offload computation to another service using this library in Go, or Jsonnet or Open Policy Agent/Rego based evaluation, which I'd prefer not to. Executing JS in Java via Nashorn also an option but it'd be heavy weight.
-
JsonLogic
Having a standard way to share expressions does seem quite useful, especially when it's multilingual.
[0]: https://github.com/google/cel-spec
-
Google Cloud: IAM Conditions
There's more information about CEL and its specifications here
-
Question about setting up multiple applications using nginx.
Especially when dealing with more complex match rules, I personally much prefer Caddy's matchers over building some weird-ass if constructs in Nginx. It also supports CEL for request matching, giving you access to extremely powerful logic, if you need it.
cue
-
TypeSpec: A New Language for API-Centric Development
If you are in a situation where you have a backend and you want to expose an API and then you would eventually want a client, you would need format specs as the starting point where server and clients are generated from that one source.
At the moment, OpenAPI with YAML is the only way to go but you can't easily split the spec into separate files as you would do any program with packages, modules and what not.
There are third party tools[0] which are archived and the libraries they depend upon are up for adoption.
In that space, either you can use something like cue language 1] or something like TypeSpec which is purpose built for this so yet, this seems like a great tool although I have not tried it yet myself.
[0]. https://github.com/APIDevTools/swagger-cli
[1]. https://cuelang.org/
EDIT: formating
-
Show HN: Workout Tracker – self-hosted, single binary web application
Where `kube.cue` sets reasonable defaults (e.g. image is /). The "cluster" runs on a mini PC in my basement, and I have a small Digital Ocean VM with a static IP acting as an ingress (networking via Tailscale). Backups to cloud storage with restic, alerting/monitoring with Prometheus/Grafana, Caddy/Tailscale for local ingress.
[1] https://www.talos.dev/
[2] https://cuelang.org/
-
Apple releases Pkl – onfiguration as code language
I've been somewhat surprised that CUE bills itself as "tooling friendly" and doesn't yet have a language server- the number one bit of tooling most devs use for a particular language.
I'm assuming it's becaus CUE is still unstable?
Anyway, if others are interested in CUE's LSP work, I think https://github.com/cue-lang/cue/issues/142 is the issue to subscribe to
-
Why the fuck are we templating YAML? (2019)
This is where I usually pitch in with "Have your heard of CUELang, our lord and savior?": https://cuelang.org/
- Not turing complete
-
10 Ways for Kubernetes Declarative Configuration Management
CUE: The core problem CUE solves is "type checking", which is mainly used in configuration constraint verification scenarios and simple cloud native configuration scenarios.
-
Lua is a viable alternative for JSON
If you really want executable configurations please consider a newer language like https://dascript.org or https://cuelang.org which provide better type safety.
1- https://news.ycombinator.com/item?id=38030778
-
Writerside – a new technical writing environment from JetBrains
Markdown and XML are nice, but what about more advanced documentation formats like OpenAPI? For one recent project, I set up automatic generation of the OpenAPI docs from (much more compact and flexible) CUE definitions (https://cuelang.org/) - which has the bonus of also being able to test the API against the definitions. JetBrains has a CUE plugin, but it's really barebones (doesn't even support jumping from the usage of a schema to its definition). Of course the possibilities when generating docs are endless (just think of the various syntaxes for doc comments, embedding examples/tests in source code etc.)...
-
Show HN: Config-file-validator – CLI tool to validate all your config files
It doesn't include validators for TOML and INI, but if you're doing JSON and YAML, I would take a look at using or building upon CUE (https://cuelang.org/). It is a different take on schema definition (plus more), and is surprising terse and powerful model.
- That's a Lot of YAML
- An INI Critique of TOML
What are some alternatives?
jsonlogic - Go Lang implementation of JsonLogic
dhall-lang - Maintainable configuration files
json-logic-js - Build complex rules, serialize them as JSON, and execute them in JavaScript
jsonnet - Jsonnet - The data templating language
json-logic-rs - JSONLogic implementation in Rust, accessible via Python and JS
terraform - Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
jaspr - Modern web framework for building websites in Dart. Supports SPAs and SSR.
starlark-rust - A Rust implementation of the Starlark language
secure-json-logic - Use logic-objects from uncertain sources and run them locally without breaking the own system
Protobuf - Protocol Buffers - Google's data interchange format
jsedn - javascript implementation of edn
jsonnet-libs - Grafana Labs' Jsonnet libraries