Skip to content

hanxi/wlua

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
3rd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

wlua

GitHub actions GitHub release license

中文 English

wlua is a web framework for Lua that is as simple as it is powerful.

local wlua = require "wlua"
local app = wlua:default()

app:get("/", function (c)
    c:send("Hello wlua!")
end)

app:run()

Installation

Dependent library

Build skynet need gcc 4.9+ .

Then install use this commond:

git clone https://github.com/hanxi/wlua
cd wlua
sudo make install

WLUA_HOME and WLUA_BIN are supported by Makefile, so the following command could be used to customize installation, default WLUA_HOME is /usr/local/wlua and WLUA_BIN is /usr/local/bin/wlua :

make install WLUA_HOME=/usr/local/wlua WLUA_BIN=/usr/local/bin/wlua

So, need /usr/local/bin in $PATH .

Features

  • Routing use lua-rax
  • Middleware support
  • Group router support
  • Easy to build HTTP APIs, web site, or single page applications

Quick Start

A quick way to get started with wlua is to utilize the executable cli tool wlua to generate an scaffold application.

wlua commond is installed with wlua framework. it looks like:

$ wlua help
wlua 0.0.2, a web framework for Lua that is as simple as it is powerful.

Usage: wlua COMMAND [OPTIONS]

Commands:
 new <name>    Create a new application
 start         Start the server
 stop          Stop the server
 reload        Reload the server
 version       Show version of wlua
 help          Show help tips

Create app:

$ wlua new wlua_demo

Start server:

$ cd wlua_demo
$ wlua start

Visit http://localhost:8081 . Or use curl test:

curl -i http://localhost:8081

API Examples

More examples in wlua-examples

Using GET, POST, PUT, PATCH, DELETE and OPTIONS

local wlua = require "wlua"

-- Creates a wlua router with default logger middleware.
local app = wlua:default()

app:get("/someget", function (c)
    c:send("someget")
end)

app:post("/somepost", function (c)
    c:send("somepost")
end)

app:put("/someput", function (c)
    c:send("someput")
end)

app:delete("/somedelete", function (c)
    c:send("somedelete")
end)

app:patch("/somepatch", function (c)
    c:send("somepatch")
end)

app:head("/somehead", function (c)
    c:send("somehead")
end)

app:options("/someoptions", function (c)
    c:send("someoptions")
end)

-- By default it serves on :8081
app:run()

Parameters in path

Querystring parameters

Urlencoded Form

Another example: query + post form

Post JSON

Upload files

Grouping routes

Blank Wlua without middleware by default

Using middleware

JSON rendering

Serving static files

Serving data from file

Custom Middleware

Graceful shutdown or reload

Set and get a cookie

origin skynet service

use skynet service_provider create uniqservice

timer task

Other

About

wlua is a web framework for Lua that is as simple as it is powerful. Just a toy :)

Resources

License

Stars

Watchers

Forks