Lilush is a couple of things. First of all, lilush is a statically compiled for Linux LuaJIT interpreter that comes bundled with a curated collection of Lua modules and C libraries for
For networking, lilush uses LuaSocketWolfSSL library, which is based on Luasocket and LuaSec modules merged into one and refactored to work seamlessly with WolfSSL. WolfSSL is also statically compiled and incorporated into the lilush binary.
The binary is fewer than 2MB, and should work fine on any x86_64 Linux
system. It’s also a nice addition to a FROM scratch
docker container, as
lilush can be used as a busybox replacement.
And to top it off, lilush can compile your Lua code into a static binary too!1
Secondly, to showcase most features of its bundled modules, lilush includes a modular Linux Shell (as in Bash, Csh or Fish), suprisingly called Lilush Shell, which
host
, user
, dir
, git
, aws
, k8s
, python venv
kat
(file viewer + pager), netstat
, dig
, wgcli
, etc.
Lilush Shell relies on Kitty’s keyboard protocol,
thus will only work in terminal emulators that support this protocol, e.g. kitty
, foot
, alacritty
, konsole
…
Oh, and there is also RELIW, a web server/framework built on top of Lilush core modules.
The easiest way is just to build with docker and then copy the binary from the container:
git clone https://github.com/epicfilemcnulty/lilush
cd lilush
ln -s dockerfiles/lilush Dockerfile
docker build -t lilush .
docker cp $(docker create --name lilush lilush):/usr/bin/lilush .
docker rm lilush
If you want to build on a host system, see the Dockerfile as a reference for building details.
Right now the project is certainly in beta.
When most of the above issues are resolved, the 1.0.0
version will be released.
But quite a lot of things might be heavily refactored or removed along the way to the 1.0.0
version,
so beware and use at your own risk.
After 1.0.0
version release the project will abide by the semantic versioning promises,
but until then all bets are off. Meaning that there might be breaking changes of the core
lilush modules’ API even between, say, 0.5.x
and 0.6.x
. Or worse.
But let’s hope it won’t come to that.
Well, not yet automatically. And it really depends. But still.↩︎︎