Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

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

README.md

pegasus.lua

An 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
  • 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
  • post():table It returns a dictionary with all the POST parameters
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
You can’t perform that action at this time.