ferrigno 0.1.2

Ferrigno Lua 5.5 runtime
Documentation
  • Coverage
  • 0.97%
    21 out of 2166 items documented0 out of 1159 items with examples
  • Size
  • Source code size: 2.65 MB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 30.84 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 1m 49s Average build duration of successful builds.
  • all releases: 1m 43s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • t-0/ferrigno
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • t-0

ferrigno

Overview

This is a reworking of the wonderful lua from lua.org in Rust. It does pass the Lua 5.5 test suite, on MacOS, and includes some additional libraries and syntax (which can be disabled if required).

The goal was to provide a lua embedded environment for rust, as a sandbox for learning and to make it easier for me to write/deploy DevOps tooling.

Additional Features

  • Syntax
    • "@" syntax for embedded scripts, which resolves their imports
    • $"...{}" for interpolated -strings
    • <command> ... for shell invocation
    • supports { } for functions
  • Libraries
    • midi
    • dis
    • fmath
    • functools
    • itertools
    • requests
    • sqlite
    • toml
    • tui
    • urllib

Development & AI

I'd started this about 4 years ago, with a c2rust conversion and making it more idiomatic. Althought it was feature complete, it had a number of hairy bugs and progress was somewhat slow, being one of a number of weekend projects.

More recently I've used AI in three key areas which have helped me to get to this point:

  • slog of debugging
  • completing refactoring
  • adding additional library functionality quickly

Relationship with Lua and other upstreams

It's a downstream work, I plan to keep it up-to-date functionally with upstream Lua, where I need to embed in rust.

Can I contribute?

Possibly, and particularly if you are happy to do so for fun / open-source. Reach out so we can discuss it.