Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/guysv/ilua
Portable Lua kernel for Jupyter
https://github.com/guysv/ilua
console-application interactive jupyter jupyter-kernels lua prototyping
Last synced: 12 days ago
JSON representation
Portable Lua kernel for Jupyter
- Host: GitHub
- URL: https://github.com/guysv/ilua
- Owner: guysv
- License: gpl-2.0
- Created: 2018-09-26T13:16:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-21T21:59:03.000Z (11 months ago)
- Last Synced: 2024-10-09T12:32:46.086Z (about 1 month ago)
- Topics: console-application, interactive, jupyter, jupyter-kernels, lua, prototyping
- Language: Lua
- Size: 197 KB
- Stars: 119
- Watchers: 6
- Forks: 12
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# ILua
*ILua* is a feature-packed, portable console and [Jupyter](http://jupyter.org/) kernel for the [Lua](https://www.lua.org/) language.
![](demo.gif)
## Features
* Lua-implementation agnostic
* Should work with any lua interpreter out of the box
* Works with Lua5.1-5.3, [LuaJIT](http://luajit.org/) and even some exotic implementations like [GopherLua](https://github.com/yuin/gopher-lua)
* [Easy to port to embedded interpreters](https://eng.hroncok.cz/2020/05/14/ilua-rpm-console)
* Code completions
* Code inspection
* Retrieve function documentation
* Can even retrieve the function source if available (invoked with ??)
* Pretty-printed results
* Access last result with _
* Cross-session execution history
* Works on Linux and Windows
* No native dependencies for Lua
* Python's pip based installation## Installation
```bash
pip install ilua# From source
git clone https://github.com/guysv/ilua.git --recurse-submodules
cd ilua
pip install -e . --user
python setup.py install_data -d ~/.local # pip install -e . forgets data_files...
```## A Bit on ILua's Architecture
As opposed to existing Lua Jupyter kernels which implement the Jupyter protocol in Lua (and depend on lzmq which is a native module), ILua implements the communication with Jupyter in Python, which in turn talks with Lua via named-pipe IPC. This frees ILua from being bounded to a single Lua implementation ABI. The Lua interpreter only needs to respect the `$LUA_PATH` environment variable and execute a file given as the first argument.