waxlab/wax
2
5
Fork
You've already forked wax
0
Waxing Lua library containing a set of pure Lua and Lua C modules to extend the standard Lua library following a philosophy of robustness, simplicity and lightness.
  • C 52.5%
  • Lua 46.7%
  • Shell 0.6%
  • Dockerfile 0.2%
Find a file
2024年02月04日 14:21:54 -03:00
doc Wax 0.9-3 2023年06月21日 18:01:52 -03:00
etc Fix #16 - Possible buffer overflow on fs/init.c 2024年02月04日 14:21:54 -03:00
src Fix #16 - Possible buffer overflow on fs/init.c 2024年02月04日 14:21:54 -03:00
test Wax 0.9-3 2023年06月21日 18:01:52 -03:00
.gitignore Wax 0.9-3 2023年06月21日 18:01:52 -03:00
contributing.md Wax 0.9-3 2023年06月21日 18:01:52 -03:00
howl.lua Wax 0.9-3 2023年06月21日 18:01:52 -03:00
LICENSE Wax 0.9-3 2023年06月21日 18:01:52 -03:00
readme.md Updates readme.md 2023年06月23日 13:17:07 -03:00
run Wax 0.9-3 2023年06月21日 18:01:52 -03:00
view Wax 0.9-3 2023年06月21日 18:01:52 -03:00

Wax

Wax

Wax is a Lua package, that aims to provide increasing support to the most common scripting tasks. Its name comes from the astronomical term used to describe a planetary body that looks to be "waxing" or "crescent" as its surface is revealed by its main star light.

Wax contains a set of subpackages or modules to extend the Lua standard library for multipurpose programming. Also, its source code, provide a simple C header libraries to help when developing Lua C modules.

Quickstart

luarocks install wax

Requirements

The minimum requirements to run are:

  • Lua 5.1, 5.2, 5,3 and 5,4 (it runs the tests through all versions)
  • Luarocks >= 3.8.0

Binary modules are tested on different Unix systems:

  • Debian (as common user) - Most frequent
  • Debian Container (as root)
  • BSDs (FreeBSD, OpenBSD, NetBSD and Dragonfly) as root and common user.

Systems Support

By now, it is fully supported under Linux. BSD's support was dropped, so some adjusts may be needed on building process. Windows support is not on plans due to the expensiveness development cost on OS register, and also by WSL offering ways to use it natively as it would a Linux system.

Help and Documentation

To see a list of functions in all modules of Wax package, you can clone this repository and execute the script at its root directory:

./run help

Also there is a simple navigation tool as script. To run it you need bash, fzf, grep and sed. Like before, head to the root directory of the wax and execute:

./view

Then you can filter while previewing the help and tests for the functions.

The run help and view scripts are just a temporary improvisation to get the access to the documentation as a documentation extraction, conversion and a simple viewer for console should take its way to the project some day in future.

This documentation is also extracted and published at: Codeberg, GitHub or GitLab.

Waxing and Evolving

The official home of source code of Wax is on (Codeberg Repo)[https://codeberg.org/waxlab/wax].

To suggest features, discuss implementations or report issues, please head to these places:

Contribute

This project expect to help many end users and developers being provided freely, but it costs time and personal resources.

If Wax is useful for you, you can Donate or Sponsor.

Principles

  • If developed then documented.
  • If documented then tested.
  • If released then tested.
  • Never full or fool. More power but less bloat.
  • Discretion. Simplicity matters more than the last programming fashion.
  • Thoughtfull development. Avoid unnecessary features and compatibility issues.
  • Consistency. Namings, conventions, syntax should be harmonic between modules.
  • Intuitivity and previsibility. The siblings of the consistency.

Versioning

There are two main branches: latest and dev.

  • latest contains the latest public release.
  • dev is the recipient of the development on other branches.

When developing a feature, ex. wax.fs.list(), use a separate branch like dev-os.list that should be merged with dev only after developed, just for tests before to be released as a version.

Each version has its own tag, and Luarocks rockspec points to that.

Running tests under multiple Linuxes

You can run the tests under other Linux flavors using Docker. The dockerfiles needed are found under the assets folder.

To list available dockerfiles:

lua ./run dbuild

To run the tests under the docker instance:

lua ./run dtest

To enter on docker and test:

lua ./run drun

Observe than ./run drun expects that the instance has bash installed.