Skip to content
Lua + libUV + jIT = pure awesomesauce
Lua Go Shell Other
Branch: master
Clone or download

Latest commit

Latest commit 2c9414f May 14, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis enable coveralls May 1, 2020
bench/http-cluster fix missing code block ending Jan 22, 2015
deps tls: Fix for OpenSSL 1.1.0 May 14, 2020
examples update http module May 18, 2019
tests Merge pull request #1085 from luvitred/master May 5, 2020
tools Update tls module to use binary root certs Jul 21, 2015
.gitattributes add a .gitattributes for batch files Jul 23, 2015
.gitignore Add luvi.exe to gitignore Oct 8, 2017
.gitmodules litify Feb 18, 2015
.luacheckrc Revert all changes except porting modules to new metadata format Feb 6, 2016
.travis.yml CI: fix coveralls, really active May 2, 2020 add contributing doc (#989) Jun 14, 2017
ChangeLog Bump lit version in makefiles to v3.8.1 Mar 10, 2020
LICENSE.txt Use Apache 2.0 License consistently throughout luvit Jan 7, 2012
Makefile enable coveralls May 1, 2020
NOTICE.txt Use Apache 2.0 License consistently throughout luvit Jan 7, 2012
README.markdown enable coveralls May 1, 2020
Vagrantfile add vagrantfile Dec 1, 2014
appveyor.yml Fix appveyor.yml parse error Sep 6, 2017
init.lua Mitigate bogus errors being returned on stack overflows (#1102) Mar 25, 2020
main.lua fix luvit handle args May 9, 2020
make.bat Fix make.bat for updated get-lit.ps1 Mar 10, 2020
package.lua Bump Luvit version to 2.17.0 using Luvi v2.10.1 Mar 10, 2020


Luvit 2.0 - Node.JS for the Lua Inventor

Linux Build Status Windows Build status Coverage Status #luvit on Freenode

Welcome to the source code for Luvit 2.0. This repo contains the luvit/luvit metapackage and all luvit/* packages as published to lit.

This collection of packages and modules implements a node.js style API for the luvi/lit runtime. It can be used as both a library or a standalone executable.

See the main project webpage for more details.

Need Help?

Ask questions here through issues, on irc #luvit@freenode or the mailing list.

Binary Modules

Luvit supports FFI and Lua based binary modules. There is a wiki entry explaining how to manage and include a binary module within a bundled application. Publishing Compiled Code

Hacking on Luvit Core

First you need to clone and build luvit, this is easy and works cross-platform thanks to Makefile and make.bat.

git clone
cd luvit

If you want to test luvit without constantly building, use luvi.

luvi . 

Always make sure to run make test before submitting a PR.

Notes to Maintainers

  • Use luvi /path/to/luvit to test changes without rebuilding the binary.
  • To run the test suite, run make test to build a luvit and use that.
  • If you want to test a custom built luvi, run luvi . -- tests/run.lua
  • If you want to run a specific test file with a custom built luvi, run luvi . -- tests/test-<name-of-test>.lua (e.g. luvi . -- tests/test-http.lua)
  • There is a wiki page on making new luvit releases at

The packages in deps live primarily in this repo, but some are duplicated in luvit/lit to ease lit bootstrapping. Updates can be pushed from either repo to lit, just make sure to keep them in sync. One way to do this is to rm -rf deps && lit install. This will install the latest version of all the packages from lit. Check the diff carefully to make sure you're not undoing any work. There might have been unpublished changes locally in luvit that aren't in the lit central database yet.

You can’t perform that action at this time.