Penlight
pallene
Penlight | pallene | |
---|---|---|
7 | 17 | |
1,823 | 574 | |
0.9% | 3.7% | |
6.6 | 6.0 | |
17 days ago | 26 days ago | |
Lua | Lua | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Penlight
-
Pluto, a Modern Lua Dialect
To have enough batteries you kind of just need penlight[1] and maybe luastd. Of course there's posix, lfs, socket, luasec and you're semi set.
[1]: https://lunarmodules.github.io/Penlight/
-
I love that Lua can access file so simply using io.open, can Lua be used to delete, copy and paste folders?
https://github.com/lunarmodules/Penlight provides a bunch of functionality for stuff like that.
-
[discussion] Why don't more (any?) plugin authors use penlight?
However, there's already a widely known, well-tested library in the lua community called penlight that covers a lot of lua's "missing" functionality. It's got sane string manipulation, ergonomic tables, a basic class mechanism, functional programming, enums, exceptions, path manipulation, etc...
-
What would be the significant benefits if one would develop equivalent libraries that are available for Python for Lua/Nelua?
Lua is a small language and its "standard library" is very minimal. Lua's intended for embedding so usually the host program provides a broader standard library by exposing functions to lua. However, there are several standard library packages for lua: batteries and lume are focused on gamedev; Penlight aims at bringing the breadth of python's stdlib to lua; plenary.nvim for nvim plugins; and probably more for other domains. I'd definitely recommend checking these out to help get closer to functionality level of most other languages (I use both lume and batteries, but dropped penlight awhile back because I found some implementations confusing/overcomplicated/inconsistent).
-
Thoughts on LUA?
Lua is a small language and its "standard library" is very minimal. This was one of my initial roadblocks. Lua's intended for embedding so usually the host program provides a broader standard library by exposing functions to lua. However, there are several standard library packages for lua: batteries, Penlight, or the aforementioned lume. I'd definitely recommend checking these out to help get closer to functionality level of most other languages (I use both lume and batteries, but dropped penlight awhile back).
-
Trying Fennel for GTK apps and it's surprisingly good
As for batteries, there's things like penlight which comes with a huge set of pure Lua libraries inspired by Python. And, well, there's Fennel libraries with macros and more lispy style APIs.
-
Lua's Lack of “Batteries”
I'm very surprised there was no mention of Penlight in that article. Penlight, a supplemental standard library for Lua that is heavily inspired by Python's own standard library, has been around for years now:
https://github.com/lunarmodules/Penlight
pallene
-
LuaX: A Lua Dialect with JSX
It would have been nice if LuaX was written in Lua.
Forking Pallene (https://github.com/pallene-lang/pallene) would introduce:
- Which for loop method is faster
- Using Lua with C++
-
Bog – small, strongly typed, embeddable language
Terra and Nelua are both very different in goals than Teal. Teal is literally gradual types integrated into Lua keeping as many of Lua's idioms as possible (to a fault[1]). Terra and Nelua are both very metaprogrammable systems programming languages. Nelua's goals are primarily to soften C's rough edges, comparable to something like Nim.
There's another one you missed in Pallene[2]. But again, it's goal was to optimize the stack sharing involved in using the C API. It also adds types though and maintains Lua idioms as much as possible.
[1]: https://github.com/teal-language/tl/discussions/339
[2]: https://github.com/pallene-lang/pallene
-
Nelua, AOT statically typed Lua
That was somewhat of an entertaining read.
> Terra is C if you replaced the preprocessor with Lua.
This is what is written on the tin.
PUC made there own version of Terra
Pallene http://www.inf.puc-rio.br/~roberto/docs/Gualandi-2020-SCP.pd...
https://github.com/pallene-lang/pallene
https://www.youtube.com/watch?v=H3inzGGFefg
This is a good writeup on all the Alt-Luas https://injuly.in/blog/gsoc/
- data types in function definition
- You can make Lua compiled/statically typed using Teal... It's like TypeScript, but for Lua!
-
Lua, a Misunderstood Language
Odd to suggest that if they're interested in Lua, that they should check out Moonscript which is a different language altogether (although it compiles to Lua). But if you insist, something a little more Lua-ish is Teal[1] (gradual types ala TypeScript) or Pallene[2] (companion typed subset of Lua meant to generate optimized C libraries for use with Lua).
[1]: https://github.com/teal-language/tl
[2]: https://github.com/pallene-lang/pallene
- Interesting discussion about lua on Hacker News
-
Upcoming interview with Roberto Ierusalimschy
You might be thinking of Pallene (previously named Titan) https://github.com/pallene-lang/pallene
What are some alternatives?
luafun - Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind.
LuaJIT - Mirror of the LuaJIT git repository
Vermintide-2-Source-Code - Decompiled scripts from Warhammer: Vermintide 2.
luau - A fast, small, safe, gradually typed embeddable scripting language derived from Lua
luaforwindows - Lua for Windows is a 'batteries included environment' for the Lua scripting language on Windows. NOTICE: Looking for maintainer.
nelua-lang - Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.
lua-vips - Lua binding for the libvips image processing library
tl - The compiler for Teal, a typed dialect of Lua
luakit - Fast, small, webkit based browser framework extensible by Lua.
terra - Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
sqlite.lua - SQLite LuaJIT binding with a very simple api.
moonscript - :crescent_moon: A language that compiles to Lua