pegasus.lua

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

Github stars Tracking Chart

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

Overview

Name With OwnerEvandroLG/pegasus.lua
Primary LanguageLua
Program languageLua (Language Count: 4)
Platform
License:MIT License
Release Count24
Last Release Namev1.0.5 (Posted on )
First Release Namev0.0.1 (Posted on 2015-02-16 17:56:53)
Created At2014-11-14 15:27:23
Pushed At2024-04-21 09:23:02
Last Commit At2024-04-21 11:22:12
Stargazers Count393
Watchers Count33
Fork Count34
Commits Count513
Has Issues Enabled
Issues Count66
Issue Open Count14
Pull Requests Count61
Pull Requests Open Count0
Pull Requests Close Count13
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top