lotus-lua

Crates.iolotus-lua
lib.rslotus-lua
version0.10.16
sourcesrc
created_at2023-12-16 03:11:18.361307
updated_at2024-02-09 06:02:54.967604
descriptionLua dialect for shell scripting with the Lotus shell
homepage
repositoryhttps://github.com/orgs/lotus-shell/lotus-lua
max_upload_size
id1071528
size84,318
Neph Iapalucci (neph-iap)

documentation

README

Lotus Lua

A dialect of Lua written specifically for the Lotus shell; Lotus lua aims to be as close to vanilla Lua as possible while adding various improvements for shell scripting with Lua.

What about Luau?

Luau is another dialect of Lua, similar to Lotus. A common question is "why make Lotus if Luau exists?". While Luau has several nice features and several overlaps with Lotus, there are some features of Lotus such as the pipe operator and dollar signs in identifiers that we determined essential for the language to be effective for shell scripting.

Features & Roadmap

Lotus plans to add the following extensions to Lua:

  • Allow dollar signs in identifiers
  • Pipe operator (|>)
  • Template string literals
  • Compound assignments
  • Ternary ifs
  • Iterable tables
  • Optional type annotations
  • Increment and decrement operators

Feature Requests

If you would like to request a new feature/syntax for Lotus, please keep the following points in mind:

  • Lotus is meant to be a superset of Lua. In other words, all valid Lua must be valid lotus. We would like existing Lua scripts to be easily run in the Lotus shell. Please do not request new syntax that will break existing Lua code.
  • Lotus is meant to be simple. One of the major reasons Lua was chosen for this project is because it is a dead simple language. Please do not request new syntax that will make the language significantly more complex for little benefit.
  • Lotus is meant for shell scripting. Features that are related to shell scripting and making shell scripting easier are much more likely to be seriously considered than one-off niceties. If it is a new feature unrelated to shell scripting, such as iterable tables or ternary ifs, it should be a very common use-case and not a niche feature that will rarely be useful.
Commit count: 0

cargo fmt