Awesome
HTTP library for Lua.
Features
- Optionally asynchronous (including DNS lookups and TLS)
- Supports HTTP(S) version 1.0, 1.1 and 2
- Functionality for both client and server
- Cookie Management
- Websockets
- Compatible with Lua 5.1, 5.2, 5.3, 5.4 and LuaJIT
Documentation
Can be found at https://daurnimator.github.io/lua-http/
Status
Installation
It's recommended to install lua-http by using luarocks. This will automatically install run-time lua dependencies for you.
$ luarocks install http
Dependencies
- cqueues >= 20161214 (Note: cqueues currently doesn't support Microsoft Windows operating systems)
- luaossl >= 20161208
- basexx >= 0.2.0
- lpeg
- lpeg_patterns >= 0.5
- binaryheap >= 0.3
- fifo
To use gzip compression you need one of:
To check cookies against a public suffix list:
If using lua < 5.3 you will need
- compat-5.3 >= 0.3
If using lua 5.1 you will need
- luabitop (comes with LuaJIT) or a backported bit32
For running tests
Development
Getting started
-
Clone the repo:
$ git clone https://github.com/daurnimator/lua-http.git $ cd lua-http
-
Install dependencies
$ luarocks install --only-deps http-scm-0.rockspec
-
Lint the code (check for common programming errors)
$ luacheck .
-
Run tests and view coverage report (install tools first)
$ busted -c $ luacov && less luacov.report.out
-
Install your local copy:
$ luarocks make http-scm-0.rockspec
Generating documentation
Documentation is written in markdown and intended to be consumed by pandoc. See the doc/
directory for more information.