Pkl, a Programming Language for Configuration

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. pkl-k8s-examples

    Examples for using Pkl with Kubernetes

    Why yes, I would like to see more of those in my k8s, so glad we finally have the technology

    https://github.com/apple/pkl-k8s-examples/blob/96ba7d415a85c...

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. lowdefy

    The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.

    I'm really enjoying reading through the docs and the tutorial. We've created Lowdefy, a config web-stack which makes it really simple to build quite advanced web apps. We're writing everything in YAML, but it has it's limitations, specifically when doing config type checking and IDE extensions that go beyond just YAML.

    I've been looking for a way to have typed objects in the config to do config suggestions and type checking.. PKL looks like it can do this for us. And with the JSON output we might even be able to get there with minimal effort.

    Is there anyone here with some PKL experience that would be willing to answer some technical questions re the use of PKL for more advanced, nested config?

    See Lowdefy:

    https://lowdefy.com/

    https://github.com/lowdefy/lowdefy

  4. pkl-pantry

    Shared Pkl packages

    You are looking for templates: https://pkl-lang.org/main/current/language-tutorial/02_filli...

    There’s another repo, the Pkl Pantry, that provides a couple of ready made templates (Schemas) that you can try out: https://github.com/apple/pkl-pantry

  5. hcl

    HCL is the HashiCorp configuration language.

    Reminds me of [HCL](https://github.com/hashicorp/hcl), but without all the providers to deploy the config?

  6. jsonnet

    Jsonnet - The data templating language

    Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:

    https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...

    Now consider 100s (if not 1000s) of such files.

    I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:

    - https://jsonnet.org/

    - https://nickel-lang.org/

    - https://nixos.org/manual/nix/stable/language/index.html

    - https://dhall-lang.org/

    - (insert many more here, probably including Pkl)

  7. dhall-lang

    Maintainable configuration files

    Kubernetes config is a decent example. I had ChatGPT generate a representative silly example -- the content doesn't matter so much as the structure:

    https://gist.github.com/cstrahan/528b00cd5c3a22e3d8f057bb1a7...

    Now consider 100s (if not 1000s) of such files.

    I haven't given Pkl an in depth look yet, but I can say that the Industry Standard™ of "simple YAML" + string substitution (with delicate, error prone indentation -- since YAML is indentation sensitive) is easily beat by any of:

    - https://jsonnet.org/

    - https://nickel-lang.org/

    - https://nixos.org/manual/nix/stable/language/index.html

    - https://dhall-lang.org/

    - (insert many more here, probably including Pkl)

  8. homelab

    Configuration-as-code for my homelab (by shepherdjerred)

    Try Deno with CDK8s! It's such a fantastic experience. Here's a repo for my home server: https://github.com/shepherdjerred/servers/tree/main/cdk8s

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  10. pkl

    A configuration as code language with rich validation and tooling.

    At some point, we'll publish more documentation about this, including instructions for how to build your own language binding.

    And, it's only a sub-process right now, but we plan on also providing a C library as another way to bind to Pkl.

    But if you want to learn more about how this works, feel free to connect with us on GitHub! https://github.com/apple/pkl/discussions

  11. guix

    Read-only mirror of GNU Guix — pull requests are ignored, see https://guix.gnu.org/en/manual/en/guix.html#Submitting-Patches instead (by guix-mirror)

    > So what we are missing now is a 500GB framework that can write the config file for the programming language that is writing a config file for the actual program I wish to use.

    That exists since 1960. It's called LISP. The e.g. https://guix.gnu.org/ uses with great success, the Guile Scheme dialect of LISP, to be precise. And FYI the "framework" is:

     $ ls --human-readable --size $(readlink $(which guile))

  12. kurtosis

    A platform for packaging and launching blockchain infra. Think docker compose for blockchain

    100%. Containers are essentially the new language-agnostic software libraries, but our current tools aren't adapted to write and distribute the "programs" formed from gluing them together.

    (Mostly-shameless plug, this is what we're trying to solve with Kurtosis: https://github.com/kurtosis-tech/kurtosis )

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

Did you know that Go is
the 3rd most popular programming language
based on number of references?