Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Awesome-lua: A curated list of Lua packages and resources (github.com/lewisjellis)
86 points by MaxScheiber on Aug 18, 2014 | hide | past | favorite | 38 comments


"awesome-lua" is probably not a good choice of name as the most common association of "awesome" with "Lua" is the Lua-based Awesome window manager.


This is a totally valid point which I considered, but I think the association of awesome-<language> for lists like this is more valuable, since part of the purpose is to make it accessible for people outside the lua world (who probably won't know about awesomeWM anyway).


But you make life a lot more difficult for people who do use the Awesome Window Manager, because it becomes much harder for us to find solutions to problems using Google for instance.


'awesome-lua' is not typically a phrase/term referring to the Awesome WM. On GitHub, there is only one awesome-wm-related repo by the name `awesome-lua`; it's just one person's configuration and hasn't been updated since 2012. I don't think I'm stepping on anybody's toes here.

Typically, the window manager is referred to as either just 'awesome' or as 'awesome wm'. awesome-lua is not a name conflict with 'awesome' or with 'awesome wm', and the worst case for search results is that awesome-lua shows up and bumps everything else down by one spot. As klibertp suggested, adding 'wm' to your query makes awesome-lua not show up at all; claiming that I 'make life a lot more difficult' is rather silly.


Just add "wm" to your queries...


Awesome would be "lua-configured", not "lua-based".


It's a bit difficult to separate the commonly used libraries from the window manager itself. These libraries are basically necessary to have any sort of decent UX with the WM. These libraries are written in Lua, so to call the WM only 'lua-configured' is a bit disingenuous.


Can we PLEASE not refer people to penlight anymore? It's half broken, poorly documented, and poorly maintained. It drives me crazy to see it referred to all over the place as a good example of anything.

That being said, this is FANTASTIC. Due to the nature of lua it may well always lack a good community but thankfully people seem to be trying.


Author/maintainer here - Thanks for the kind words! Lua's nature is definitely a bit prohibitive to a tight community, so part of my intention with this list is to provide an overview of what's out there.

As far as penlight goes - feel free to open an issue or PR to discuss any inclusions/exclusions. I haven't actually used it myself, but as a fan of microlight I decided to include the big brother. Everything can be reconsidered.


> Lua's nature is definitely a bit prohibitive to a tight community

Is that for technical reasons or because Lua is commonly used in proprietary apps?


The Lua language and LuaJIT are great.

The user base is fragmented (version 4, 5.1 (LuaJIT) vs 5.2), as Lua is usually used as embedded language (alongside C, C++, ...) for video games (World of Warcraft, Far Cry, ...), applications (Adobe Lightroom, ...), etc.

And the http://lua.org website is a bit too minimalistic to offer community features. The project only hosts a mailing list and a old-school wiki. The additional libraries are/were hosted on http://luaforge.net , an outdated sourceforge clone. The documentation is static and the development process itself is not so open. The Lua language standard library is lacking functions almost every other language ship with their default package (so everyone has to either find & download additional libraries or reinvent the wheel).

Other languages like PHP have a documentation that allows the community to add comments and code samples.


If someone created a community site with editable docs, do you think it would gain traction?


Not necessarily proprietary apps, but a wide variety of use cases; Lua is embedded in all kinds of different stuff and used for game dev, webdev, embedded scripting, WoW, configuration, and much more, whereas JS, for example, is used in just two main (related) cases. This makes Lua's userbase rather fragmented across these niches.


I disagree strongly with that.

Penlight is the closest thing there is to a Lua standard library (loosely modeled after what exists in Python). It is maintained by Steve Donovan who is one of the most active members of the community and the author of http://www.luafaq.org/, LDoc and lake.

Having contributed to Penlight myself I can say it is certainly not poorly maintained compared to most other Lua projects.

I agree, Penlight is not the best at everything it does, and it probably does too much (which is why there is microlight), but it is still a tool most Lua users need to know about.


Why do you say that? WRT doco it's one of the better Lua libraries.


Are there alternatives to penlight you'd recommend?


PL is an enormous library so its really superseded by a few different libraries. The stuff I used most often were the functional tools and Moses (https://github.com/Yonaba/Moses/) blows the doors off of PL in that regard.


Have you looked at luafun? If so, what's your opinion?

https://github.com/rtsisyk/luafun


There is another awesome-lua list that predates this one: https://github.com/forhappy/awesome-lua

The "master list": https://github.com/bayandin/awesome-awesomeness


Indeed; I have no claim to originality. The pre-existing list is (extremely) incomplete, and gives a laundry list of outdated and unmaintained libraries which are often not useful or broadly relevant. Such entries dilute the usefulness of all other entries on the list, so I made this version to avoid that (and to be more complete).


Why isn't a search engine sufficient for discovering <foo-language> packages and resources? Historically, human-edited lists don't have a long archival lifetime, e.g. original Yahoo, DMOZ, Mahalo.

If curation is better than search, why is a curated list better hosted at github than Wikipedia, which has a lower technical cost of editing? If the problem is Wikipedia moderation, who will reconcile multiple github curated lists?

Is the expectation that github's "awesome-xyz" repos will rank higher in Google search results than a curated Wikipedia page? Or is this github-specific SEO?


For what it's worth, I wrote https://lua-toolbox.com/ (a website referencing all Lua rocks which users can endorse).

A search engine will allow you to discover tools you are looking for, but sometimes you do not know exactly what to search. There are way fewer Lua modules than e.g. Python or Ruby libraries so exhaustive lists are still manageable.

Also, sometimes you want to know what people are actually using. A bit of "social proof" is always good when you are looking for Open Source libraries.

There is more to say about this and the Lua modules ecosystem, which is why I gave an entire talk about that topic at Lua Workshop last year http://files.catwell.info/presentations/2013-11-lua-workshop... :)


A search engine is technically sufficient, but takes more time and is less accessible. A search engine won't put things in front of you for you to peruse and explore; you have to know what you're looking for. Beyond that, the contributors and I have done research to find and decide on the entries on this list, which should help readers avoid repeating the same process.

A git repo has an explicitly responsible maintainer, while wikipedia articles do not. This helps keep the quality high.

Regarding SEO - even now, the same day I first pushed this, searching 'lua awesome' returns this as result #5 on Google. 'awesome-<language>' is a known convention for curated lists like this one, and people familiar with that convention who are looking for Lua resources will easily find this.


> the contributors and I have done research to find and decide on the entries on this list

It would be helpful to have a summary of selection criteria at the top of the list, in addition to the longer version on the Contributing file.

If such curated lists were also available in JSON, developers could meta-curate a locally searchable union of all their upstream projects. It would then be easy to update, annotate or cross-reference lists.


Maybe the way to judge curation is by comparing curation+search to search alone. With good curation effort, i think that curation+search is a winner , at a relatively minor cost(needing more time).

Also curation has the benefit of being a useful discovery tool.


In theory, https://www.openhub.net/p?r&q=lua could construct/curate such lists from project activity analytics.


Personally i think human curation is much better than curation by activity analytics, and it can offer better context.


No question. But it usually doesn't last, as people move onto other projects. Even within this thread, the new list is replacing a similarly named, now unmaintained list.

DMOZ/Wikipedia at least try to provide long-term continuity and a standardized ontology for discovery. This github list is depending on the searcher already knowing that they should preface their dev discovery queries with "awesome".

If this list format were standardized, it could be dynamically merged with data from OpenHub. Or GitHub could add analytics features (similar to OpenHub) to assist the human curator editing this GitHub repo.


This list replaces a centralized list. Maybe with the magic of git this will work better. Or maybe we need better community building and connection around such list.

But since such a knowledge source is highly useful for people, and very valuable and people could get lots of credit for helping(in theory), i could see something like this built up.

On the other hand comparing just the current list(5 days of operation) , with the best openhub or github search could offer for the queries "python cryptography" and "python xml", i don't think analytics alone should do. But sure analytics can(and are through Google/Github) being used to guide curators.


Another site that has a nice overview is http://luapower.com


Some more packages are on the LuaForge list: http://luaforge.net/projects/

(though LuaForge looks outdated)

Thanks for curating the list!


Your list of section anchor links appears to be broken. I click on any and nothing happens. Otherwise I look forward to browsing it.


Hm, they work fine for me; can you be more specific?


How can I be more specific than "I click on any and nothing happens"? The links must point to non-existent anchors in the page. I'll go have a quick look at the source but I don't know what it can tell me.


Does anybody know a stable Lua package for HTML scraping, preferrably similar to Nokogiri or Beautiful Soup?


Can someone please recommend a library for music synthesis?


The only thing I came across (not my area) was this http://worp.zevv.nl/


I wish I had this list when I started programming in Lua.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: