#run #cli #console #applications #programs #init #cli-applications

app rigz

CLI application to run rigz programs

1 unstable release

0.0.1 May 11, 2024

#60 in #init

Download history 139/week @ 2024-05-06 18/week @ 2024-05-13

157 downloads per month

MIT license

42KB
1K SLoC

rigz

A functional language written in Rust, meant to be rigged together with all functionality provided via modules.

Installation

TODO

Usage

Console

Open a REPL

rigz console

Init

Create a new rigz project

rigz init

Run

Run a rigz project based on default config or RIGZ_CONFIG environment variable

rigz run

Test

Test rigz code based

rigz test <test_directory>

Features

  • Everything is a function_call or a value, no expressions
  • Minimal standard library, can be excluded
  • Supply functions by importing or writing modules (LuaModule or custom types that implement Module)

Inspiration

I was mainly inspired by Ruby, CSS, and Terraform when creating this language. When asking myself how I'd want to create a terraform alternative, just as a thought exercise, I settled on everything being a function call. I'd been thinking of the idea for about a year and after a few failed attempts, here we are.

Goals

  • Declarative functional language with no GC
  • Modules written in other languages

Contributions

Yes please! There is a ton of work to do and a lot that I'm learning, so I'd welcome Suggestions, Bug Fixes, and Roadmap contributions (see below). For anything else please start with an Issue, and we'll make sure it's something the language should support.

Roadmap

  1. LSP
  2. polc (Project/module) - Policy Engine backed by rigz
  3. File Types (read/write): yaml, toml, hcl, opentofu, pkl
  4. Script Modules: shell, python, ruby, js
  5. Query Modules: jq, xpath, html, AST/ANTLR
  6. Utils Modules: HTTP, GraphQL, sqlite, events, matcher
  7. Library Modules: wasm, jars, jvm scripting module, erlang
  8. Module Registry
  9. shortkey (Project/module) - inspired by autohotkey
  10. Hosted rigz (serverless & long running)
  11. glue, this was the last attempt aq/psh(I couldn't decide on a name) but shows the syntax, fully interpreted functional language meant as a shell alternative (very similar philosophy, this time with expressions). Ultimately the reason I decided to create rigz, believe it or not this was a way to start with something simpler.

Dependencies

~7MB
~131K SLoC