pegasus.lua

:rocket: Pegasus.lua is a http server to work with web applications written in Lua language.

Github星跟踪图

pegasus.lua

A http server to work with web applications written in Lua language check the site.

Build
Status
HuBoard
badge
Gitter

Installation

To install Pegasus.lua, run:

$ luarocks install pegasus

How does it work?

Follow an example:

local pegasus = require 'pegasus'

local server = pegasus:new({
  port='9090',
  location='example/root'
})

server:start(function (request, response)
  print "It's running..."
end)

Features

  • Compatible with Linux, Mac and Windows systems
  • Easy API
  • Support Lua >= 5.1
  • Native support for HTTP Streaming, aka chunked responses. Check how it works.
  • Native plugin to compress responses using the "gzip" method

API

Parameters

  • host:string Host address where the application will run. By default it uses localhost
  • port:string The port where the application will run. By default it's 9090
  • location:string Path used by Pegasus to search for the files. By default it's the root
  • plugins:table List with plugins
  • timeout:number It's a timeout for estabilishing a connection with the server

Request

Properties

  • path:string A string with the request path
  • headers:table A table with all the headers data
  • method:function The output is the request method as a string ('GET', 'POST', etc)
  • querystring:string It returns a dictionary with all the GET parameters
  • post:table It returns a dictionary with all the POST parameters
  • ip:string It returns the client's ip
  • port:number It returns the port where Pegasus is running

Response

Methods

  • addHeader(string:key, string:value) Adds a new header
  • addHeaders(table:headers) It adds news headers
  • statusCode(number:statusCode, string:statusMessage) It adds a Status Code
  • contentType(string:value) Adds a value to Content-Type field
  • write(string:body) It creates the body with the value passed as
    parameter
  • writeFile(string:file) It creates the body with the content of the
    file passed as parameter
local pegasus = require 'pegasus'

local server = pegasus:new({ port='9090' })

server:start(function (req, rep)
  rep:addHeader('Date', 'Mon, 15 Jun 2015 14:24:53 GMT'):write('hello pegasus world!')
end)

Native Plugin

  • pegasus.compress
local Pegasus = require 'pegasus'
local Compress = require 'pegasus.compress'

local server = Pegasus:new({
  plugins = { Compress:new() }
})

server:start()

Contributing

Install Dependencies

$ make install_dependencies

Running tests

$ make unit_test

主要指标

概览
名称与所有者EvandroLG/pegasus.lua
主编程语言Lua
编程语言Lua (语言数: 4)
平台
许可证MIT License
所有者活动
创建于2014-11-14 15:27:23
推送于2025-02-24 21:28:14
最后一次提交2025-02-24 22:27:59
发布数27
最新版本名称v1.0.8 (发布于 )
第一版名称v0.0.1 (发布于 2015-02-16 17:56:53)
用户参与
星数440
关注者数33
派生数41
提交数535
已启用问题?
问题数68
打开的问题数14
拉请求数68
打开的拉请求数0
关闭的拉请求数13
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?