A collection of pure Lua libraries for data handling, functional programming, and OS path management, inspired by Python's standard library.
Penlight is a collection of pure Lua libraries that extend Lua's standard library with utilities for data handling, functional programming, and OS path management. It solves the problem of Lua's minimal standard library by providing Python-inspired modules for common tasks like reading config files, manipulating strings and tables, and managing filesystem paths. This makes Lua more practical for application development and scripting.
Lua developers and scripters who need enhanced standard library functionality for building applications, tools, or scripts, particularly those familiar with Python's conveniences.
Developers choose Penlight because it offers a comprehensive, Python-inspired toolkit within pure Lua, reducing the need to write boilerplate code or rely on multiple disparate libraries. Its focus on compatibility across Lua versions and pure Lua implementation (for core modules) ensures portability and ease of integration.
A set of pure Lua libraries focusing on input data handling (such as reading configuration files), functional programming (such as map, reduce, placeholder expressions,etc), and OS path management. Much of the functionality is inspired by the Python standard libraries.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports reading Unix config and Windows INI files via the config module, plus tabular data management with 2D array operations, filling gaps in Lua's standard library for application development.
Includes map, reduce, lambda expressions, and list comprehensions through modules like func and comprehension, enabling Python-like coding styles directly in Lua for reduced boilerplate.
Provides cross-platform tools for file and directory operations, such as copying, moving, and path queries via the path and dir modules, enhancing portability without OS-specific code.
Offers advanced string manipulation like lexical scanning and text wrapping, plus specialized table types like List and Map, extending Lua's built-in capabilities for complex data tasks.
File and directory functions require LuaFileSystem, and dir.copyfile on Windows needs Alien, adding installation complexity and breaking the pure Lua promise for some operations.
While LuaRocks simplifies setup, manual installation involves copying directories and managing module paths, which can be error-prone compared to integrated package managers in other ecosystems.
As a pure Lua library with extensive features, it may introduce performance overhead in resource-constrained environments, especially for operations that could be optimized with C extensions.