Releases: luainkernel/lunatik
Lunatik v4.1.1
Lunatik v4.1
What's Changed
- Add GitHub Actions workflow for building modules by @Physic69 in #355
- Auto generate network constants for lua (cont) by @sneaky-potato in #395
- Add Kconfig to Lunatik for Modularization by @Zapper9982 in #404
- allow lunatik_closeobject to be called multiple times by @lneto in #415
- Update lldp example after lualinux ifaddr addition by @carloslack in #412
- autogenerate lunatik config from makefile flags by @abhijeetw035 in #400
- build lunatik on linux 5.4.164 by @ArifAlam in #419
- wrap class methods eagerly instead of via __index by @sneaky-potato in #410
- fix gendefines.lua by @lneto in #421
- fix LUA_PATH detection during install in Makefile by @sneaky-potato in #424
- refactor configure.lua by @lneto in #425
- fix unsafe_memcpy for kernel 5.x by @lneto in #426
New Contributors
Full Changelog: v4.0...v4.1
Lunatik v4.0
What's Changed
Updated Lua to v5.5
Lunatik now embeds Lua 5.5, a major language release with significant improvements after years since 5.4.
Key enhancements include:
- External strings, allowing immutable strings to be stored outside Lua.
- Explicit global variable declarations to reduce bugs from accidental globals.
- More compact arrays with up to ~60% memory savings for large tables.
- Incremental major garbage collection, reducing pause times and improving responsiveness.
- Read-only for loop variables and other language refinements.
- New utility features such as table.create, improved UTF-8 support.
- See more on the official Lua 5.5 release highlights.
Added luahid module (HID devices)
New binding for HID devices, including example scripts.
(Developed by @qrsikno2 – GSoC 2025)
Added luacpu module (per-CPU operations)
Provides per-CPU operations and CPU statistics export.
(Developed by @endersonmaia)
Added UNIX Domain Sockets support (AF_UNIX / AF_LOCAL)
Available via luasocket.
Added SKB resize support
Enables dynamic resizing of sk_buff (available via luadata).
(Developed by @abhijeetw035 based on @ArifAlam's draft)
Introduced high-level RAW socket API (AF_PACKET)
Simplified and standardized RAW socket handling.
(Developed by @sneaky-potato)
Added POSIX signals API
Support for signal delivery.
(Developed by @Physic69)
Netfilter hooks now expose network interface index (ifindex)
(Developed by @carloslack)
64-bit integer support on 32-bit platforms
Enables correct use of time APIs (e.g., on RAMIPS).
Improved error messages
(Developed by @abhijeetw035)
Fixed many bugs
- page fault and memory leaks on luacrypto_{aead, skcipher}
- deref SKB after running callback on luanetfilter and luaxtable
New Contributors
- @endersonmaia made their first contribution in #318
- @Aditya-Sarna made their first contribution in #332
- @abhijeetw035 made their first contribution in #334
- @Zapper9982 made their first contribution in #338
- @carloslack made their first contribution in #352
- @MarcFontaine made their first contribution in #371
- @ArifAlam made their first contribution in #324
Full Changelog: v3.7.1...v4.0
Lunatik v3.6.4
Full Changelog: v3.6.3...v3.6.4
Lunatik v3.7.1
What's Changed
- add minimum kernel support ver to README by @sheharyaar in #308
- Ifdef comp kernelverion by @qrsikno2 in #314
- moving the newbuffer marco from netfilter to the core by @qrsikno2 in #313
- fix struct sockaddr version check by @lneto in #317
Full Changelog: v3.7...v3.7.1
Lunatik v3.7
What's Changed
- Fix : add kernel version guard to luaxdp_exit() for compatibility with < 6.4 by @ShivamVashisth28 in #263
- move lunatik_setstring into lunatik.h by @qrsikno2 in #266
- hotfix: correct function name to fix build failure by @qrsikno2 in #267
- add support for LDoc by @lneto in #271
- Fix fib api change in kernel >= 6.15 by @jperon in #278
- move luanetfilter_setinteger/optinteger into lunatik.h by @qrsikno2 in #282
- Update README.md to point to LDoc. by @jperon in #284
- Add lualinux_kill() by @Physic69 in #280
- update the optinteger with removed nil version by @qrsikno2 in #285
- Linux crypto api: crypto_shash by @jperon in #283
- Add crypto_shash to Makefile by @jperon in #287
- crypto_shash tests by @jperon in #286
- HKDF tests: Add tls13_expand_label by @jperon in #288
- crypto_skcipher by @jperon in #289
- Add crypto_skcipher to documentation by @jperon in #291
- Fix compilation warning by @jperon in #292
- fix missing semi-colon in cleanup script by @sheharyaar in #299
- add zlua.ko module order to fix sym conflict by @sheharyaar in #298
- crypto_aead by @jperon in #296
- crypto_rng by @jperon in #293
- update lua/ to v5.4.8 by @lneto in #303
New Contributors
- @ShivamVashisth28 made their first contribution in #263
- @Physic69 made their first contribution in #280
Full Changelog: v3.6.2...v3.7
Lunatik v3.6.2
What's Changed
- fix luarcu_map synchronization by @lneto in #244
- luaskel: use LUNATIK_PRIVATECHECKER by @jperon in #246
- Test case for rcu map sync by @jperon in #247
- fix spurious address on luasocket_send() by @lneto in #251
- add support for setting skb->mark on luanetfilter by @lneto in #261
Full Changelog: v3.6.1...v3.6.2
Lunatik v3.6.1
What's Changed
- use virtual memory for big allocations on sleep context by @lneto in #231
- separate kernel build directory and module build path by @glk0 in #234
- added .editorconfig by @glk0 in #238
- added vt support to luanotifier by @glk0 in #236
- add support for netfilter mark by @lneto in #239
- make MAX_SCHEDULE_TIMEOUT definition available by @marcelstanley in #240
- Adjust build for mips(el) + 1-cpu targets by @marcelstanley in #237
- fix cflags by @lneto in #241
New Contributors
- @marcelstanley made their first contribution in #240
Full Changelog: v3.6...v3.7
Lunatik v3.6
What's Changed
- add settable method to rcu API by @sheharyaar in #118
- add lunatik_checkfield method by @sheharyaar in #119
- add luafifo by @lneto in #121
- fix issue #130: write to /dev/lunatik only if it exists by @glk0 in #131
- reduce LUAI_MAXSTACK to force an overflow error in case of a module requiring itself by @lneto in #129
- update Lua to v5.4.7 (rc4) by @lneto in #132
- update klibc to fix build for CONFIG_RETPOLINE and CONFIG_RETHUNK by @lneto in #133
- update license by @lneto in #135
- add set,get (u)int8,16,24,32,64 support to luadata by @sheharyaar in #134
- fix trailing newlines on print() by @lneto in #136
- fix luaxdp BTF flags for kernel >= 6.9.0 by @sheharyaar in #137
- add endian conversion support to lualinux by @sheharyaar in #141
- Add __len to luadata. by @sav in #142
- add editable field to luadata by @sheharyaar in #139
- fix luadata_checkwritable cond by @sheharyaar in #143
- update README for luadata fixed size getter/setters by @sheharyaar in #140
- add lualinux endian conversion docs by @sheharyaar in #146
- allow default argument in luadata:getstring by @sav in #145
- support an specific device when using AF_PACKET by @sav in #144
- add __tostring to luadata by @sav in #147
- fix luadata opt in call to luadata_new by @sheharyaar in #148
- fix luadata setter, getter docs by @sheharyaar in #150
- add luaxtable API by @sheharyaar in #151
- fix dnsblock example, add hooks field by @sheharyaar in #152
- Fix skb len calculation by @jperon in #155
- Update kernel version check by @jperon in #158
- Allow parallel compilation with make -j by @jperon in #159
- Document linux.time() by @jperon in #161
- fail when there is no space available in the kfifo by @sav in #160
- fix warnings on luaxtable by @lneto in #163
- document luadata getstring by @sav in #166
- fix typo in luaskel by @sav in #167
- add xtable userspace library by @sheharyaar in #153
- Update README.md by @jperon in #171
- suppress _NR* redefinition warnings by @sav in #182
- add netfilter API by @sheharyaar in #154
- fixes and improvements on sleep modes by @lneto in #164
- automatically require libraries when copying objects between runtimes by @lneto in #187
- remove .(, ...) calling format from README by @lneto in #186
- add luacompletion by @sav in #170
- drop support to passing args on thread.run() by @lneto in #188
- protect lunatik_runtime() call by @lneto in #190
- Debian: install Lunatik on kernel upgrade by @jperon in #196
- add lunatik stub lib for non-sleep runtimes by @lneto in #197
- allow using .lua file extension in the command line by @lneto in #194
- require lib automatically when clonning objects by @lneto in #200
- install ebpf https.o to /usr/local/lib/bpf/lunatik by @vincentmli in #192
- Update Readme and Debian script by @jperon in #201
- Fix Debian kernel upgrade script by @jperon in #203
- Fix Debian update script by @jperon in #204
- Typo by @jperon in #206
- Fixes for Ubuntu by @jperon in #207
- Remove old dependency and fix install by @jperon in #208
- Only delete temporary files on success by @jperon in #209
- Ipparse integration by @jperon in #210
- a few minor changes by @sav in #214
- fix bpf and bpf_install Makefile targets by @lneto in #202
- pass ether header to the netfilter hook by @sav in #212
- Adding installation instructions for Arch by @rustedusted in #216
- fix struct sockaddr version check by @lneto in #218
- adding a net library by @rustedusted in #217
- adjust Lunatik for OpenWRT feed by @lneto in #222
- fix race condition on luaxdp by @lneto in #224
- add support for busybox's modprobe by @lneto in #225
- force lua5.4 by @lneto in #226
- remove dependency on insmod by @lneto in #227
- add optional timeout parm on mailbox:receive() by @lneto in #228
- fix luasocket for examples/tap by @lneto in #229
- bump Lunatik version to 3.6 by @lneto in #230
- @sav made their first contribution in #142
- @vincentmli made their first contribution in #192
- @rustedusted made their first contribution in #216
New Contributors
Full Changelog: v3.5...v3.6
Lunatik v3.5
What's Changed
- fix FPAC exception on arm64's setjmp/longjmp by @lneto in #100
- limit the syscalls to track on examples/systrack.lua by @lneto in #97
- Enable building against a custom kernel by @glk0 in #98
- prevent running already loaded script by @glk0 in #101
- add luaxdp by @lneto in #104
- add rm, install and mkdir variables to makefile by @sheharyaar in #112
- add attach/detach APIs to luaxdp by @lneto in #114
- update luaxdp by @lneto in #115
- require luadata on xdp.attach() by @lneto in #116
- update Lua to v5.4.7 (rc2) by @lneto in #117
New Contributors
Full Changelog: v3.4...v3.5